- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
MrSealRD
veterán
Egyreszt magahoz a szakmahoz is van koze, ha masert nem, az emlitett fekete fejlesztok miatt. Masreszt meg a szakma termekeinek is van celkozonsege. Ott aztan vegleg hatalmas versenykepessegi eleses, ha nem gondolsz mindenfele marginalizalt csoportra.
Valahol a lenyeg ott van, hogy szerinted csak hipererzekeny viraglelkueket zavar a dolog, de valojaban nem. Az emberre a dolgok nem csak tudatosan hatnak, a felszin alatt hatalmas lelki es ezen keresztul kesobb fizikai bantalmat tudnak okozni. De errol ne nekem higyj, inkabb pszichologusok/pszichiaterek tapasztalatait vedd figyelembe.
Azzal, hogy aki ellenvelemenyt fogalmaz meg, en sem ertek egyet, hogy el kellene nyomni. Ellenvelemenynek mindig van helye.Ha valakit traumatizál az, hogy a branch neve master... az kezelésre szorul, és nagyobb baja is van ennél... Illetve, azt tegyük hozzá, hogy sok más helyen is ott vannak különböző szavak...amik triggerelhetik ezt az érzés...
-
MrSealRD
veterán
Valoszinuleg sosem fogd megerteni, hogy mit jelent egy feketenek a mester szo hallata. En sem fogom, bar szeretnem azt hinni, hogy igen. De nem vagyok naiv, sosem fogom valoban aterezni milyen rabszolgacsalad sarjanak lenni, barmekkora is az empatiam. Az ilyen szavak tudat alatt is hatalmas karokat tudnak okozni az erintetteknek. S az is persze igaz, hogy Magyarorszagon tok mas az elsodleges jelentese a leforditott szonak, emiatt megint mas elkepzelni a pszichologiai hatasat. Idehaza persze elsosorban a mindenhez erto ember jon elo a szo kapcsan, nem a korbacsos rabszolgatarto. Meg az is igaz, hogy biztosan korulvesz minket ezer olyan szo, ami mas emberekben szorongast valt ki. Es persze eszre se vesszuk. Azert amik eleg szeles korben okoznak problemat, az reszemrol nem baj, ha atnevezesre kerul. Meg fogom birni szokni, hogy 1 betuvel kevesebbet kell gepelni.
Ezzel csak egy baj van. Semmi köze nincs a szakmához... Fogadni mernék rá, hogy az eddigiekben fejlesztőként dolgozó feketék, totál nem foglalkoztak ezzel. Max 1-2 hiperézékeny viráglelkű... Csak most az a divat, hogy az feleljünk meg minden jogi aktivista csoportnak... Alig várom, hogy véget érjen ez a korszak... és végre a lényegre fókuszáljon a világ. És ha valakit ez zavar, akkor 3mp alatt kapja a különböző bélyegeket...de úgy hogy utána már életében nem fog tudni dolgozni... Ez abszurd.
-
MrSealRD
veterán
Nem kifejezetten Java kérdés....de nincs spec topik és lazán kapcsolódik...előre is elnézést. De minden komoly észrevétel jól jön.
Zöldmezős alkalmazás. DB tervezés. Van egy csomó kis szótár tábla. Ez tipikusan arra van, hogy a legördülőket majd innen töltjük fel. De lenne karbantartó is ezekre a táblákra... Én ezeket a táblákat külön vettem fel... Viszont nemrég jött egy másik ötlet egy kollégától.
Ő 1 táblát javasol lényegében az összes szótártáblában tárolt adatra.
TYPE - ID - NAME - SPEC1 - SPEC2 ...stb mezőkkel.
DOG - 1 - kutyi - szánhúz- null
CAT - 1 - cica - null - alszikItt lényegében a TYPE tartalmazná a típust és az ID-val együtt alkotná az elsődleges kulcsot...
Állítólag azért jó, mert nincs sok kis tábla... Én még annyit gondolok mögé, hogy kevesebb JOIN miatt gyors tud maradni a lekérdezés. De nekem zavarja a szemem, hogy eltérő típusú adatokat gyúrunk egybe. Az eltérő típusú objektumok miatt sok a kitöltetlen mező.
Ráadásul nagy kérdés, hogy amikor mondjuk egy Hibernate-et teszek fölé, akkor mennyire kavarja meg a domaint, hogy minden objektumnál lesz getSpec1() metódus miközben nincs is értelmezve az adott objektumon, mert azt a Spec2 tulajdonságával értelmezzük, és így azért lehetnek fura dolgok a kódban... -
MrSealRD
veterán
Közvetlenül még nem. De a mobilos csapat vezetőjével múlt héten beszélgettem és ők már Kotlinban nyomják pár projekt óta. Backenden még nem játszottunk vele. De ahogy néztem doksikat, egyre közelebb kerül a dolog.
-
MrSealRD
veterán
Köszi a tippeket. Végül a forrás összehasonlítása után megszüntettem a származtatást, mert úgy tűnt gyakorlatilag felülírtak metódusokat...(Override nem volt...)
Tiszta katyvasz az egész néha fárasztó sok éves legacy kódokban turkálni...Aethelstone: Az oké, de a kérdés az volt, hogyan, úgy hogy ne vágjak szét még több kódot ami esetlegesen erre alapoz... Ezen délelőtt átlendültem...volt még utána már csoda amire nincsenek szavak.
-
MrSealRD
veterán
Gondolom, hogy voltak korábban a ctornak paraméterei. Ha privát lett, kéne, hogy legyenek publikus setterek a korábban ctorban inicializált adattagoknak...egyáltalán mit csinált a ctor? És statikus metódusok esetén miért kell publikus ctor? Sok itt a kérdés

Konkretizálom a dolgot.
Ez itt az új verzió aminek már private ctor van. A 6.2-es verzióban még nem volt private. Van egy saját ComponentUtils osztályunk amit vagy 5 éve írtak és ebből a fent linkelt osztályból került származtatásra. Mivel akkori verzióban még nem volt private a ctor így ebből nem volt gond... Most, hogy új verziót húztam be...szembesültem a változással... Tehát valamikor régen kiterjesztésre került ennek az osztálynak a funkcionalitása és azért kapott azonos nevet, hogy ez legyen használva mindenhol. Ugyanúgy static metódusok vannak benne... Viszont a fenti változás miatt ez a helyzet már nem tartható, de a korábbi funkcionalitásra is szükség lenne, meg a mostanira is. De ezt öröklődéssel már nem lehet biztosítani... -
MrSealRD
veterán
Van egy 3rd party lib. Aminek az egyik osztályából származtatva volt egy saját osztályunk. A nevük megegyezik. Ez bővítve lett még néhány plusz funkcióval.
A lib-ből kijött egy új verzió és az ős osztályt módosították. Privát lett a konstruktora. Így a származtatott osztály innentől kezdve eltört. Kompozíció nem jöhet szóba. Singleton-ba se lehet átforgatni. Annyira nem meglepő, mert statikus metódusokat biztosít mindkét osztály...
Az a kérdés, hogy milyen lehetőségeim vannak a helyzet feloldására? -
MrSealRD
veterán
Érdekelne mit gondoltok az alábbi helyzetről.
Adott egy cégen belül írt viszonylag egyszerű komponens. Ami áll egy view.xhml-ből és egy viewData.java model osztályból. Van még egy viewControllerünk az esetleges helyi logikákhoz.
SOAP-on keresztül jönnek az adtok ami kérdések.. A webszolgáltatás definiálja a kérdés típusát, válaszlehetőségeket és ez alapján rajzolódik ki a komponens. Most úgy néz ki, hogy alapvetően eldöntendő kérdések vannak, de ha valaki "Igen" választ jelöl meg akkor megjelenik egy beviteli mező, ahol további adatot kell megadni. Ez lehet, hogy egy mondat, de lehet csak egy szám.A modelben úgy vannak letárolva a kérdések és a válaszok, hogy függetlenül a kérdés típusától és az esetleg hosszabb válasz típusától egy getValue()-val szedjük ki a választ. Amikor ezt visszafelé küldjük a webszolgáltatásnak.
Előadódott egy olyan probléma, hogy amikor valaki az igen válasz után egy egész számot adott meg, az küldéskor már tizedes törtként ment tovább. (Pl 5 => 5.0)
Mikor belenéztem gyorsan a komponensbe azt láttam, hogy ott String-ként tárolódik ezért lehet, hogy az InputNumber mezőbe beírt számot történt tárolja le...
Mivel az adatok beküldése egy másik controller feladata ezért ott kerül összeállításra a request.
A fenti problémára 2 megközelítés merült fel.
1. Abban a controllerben amiben összeáll a beküldés, ott próbálom parseolni float-ra. Ha sikerül, akkor számról van szó, így round-al kerekítem egészre, és String-re konvertálva megy be a requestre. Ha elszáll NumberFormatException-el akkor azt jelenti, hogy ez egy vegyes tartalmú mező. Simán mehet ahogy van és nem kell kerekíteni.
2. A komponensbe kerül egy módosítás a modelbe. Nem a korábbi String value-ban tárolom hanem lesz egy int numberValue és a value-hoz írt getterben vizsgálom meg, hogy melyiket kell visszaadni és igazából így a modelbe kerül a logika...
Sok dolgot kihagytam és kicsit zavarosnak tűnhet, de szerettem volna kicsit kontextusba helyezni a problémát, nem csak úgy szárazan tálalni.
A kérdés igazából az, hogy a model osztályt meghagyni egyszerű POJO-ként a jobb ötlet és a controlllerben konvertálni a jobb ötlet, vagy mellőzni a konverziót, és a modelt módosítani "okosítani" kisebb logikákkal a jó irány? -
MrSealRD
veterán
Le se fordult addig, amíg nem adtam hozzá.
Aethelstone: IntelliJ IDEA sample JavaFX projectje, nem nyúltam bele.
-
MrSealRD
veterán
Helló!
Nem teljesen Java téma, de mivel Java-s projekt így gondoltam elférhet ide, de ha van jobb helye akkor átmegyek...Szóval adott egy projekt aminek a forrása Git verziókezelőben van tárolva. A buildre Jenkins haszálunk. Az elkészült build/release pedig nexusban tároljuk...
Az eredeti elképzelés szerint van a M(master) branch amit tisztán akarunk tartani. Ezért amikor van egy-egy nagyobb projekt ami több feladatot fog össze, arra a célra létrejön mindig egy xxxPM nevű branch. Ebből nyit a továbbiakban mindenki új branchet a saját feladatára. Amikor kész akkor szintén az xxxPM-be megy vissza a merge.
Van még egy U és egy UAT környezet tesztelésre. Alapvetően az az irány, hogy U-ra snapshot míg UAT-ra release verzió kerül ki.Több probléma is kialakult.
1. Jenkinsben 1 job egy adott branchre buildel. Alapból ez a master. De valamiért kitalálták, hogy az xxxPM branchből készülő buildeket ezentúl ne lokálisan készítsük, hanem Jenkinsben... Ezért létrehoztak neki egy külön jobot. Ilyen projektekből több is van, időnként párhuzamosan is, ezért a dedikált jenkins job szerintem nem jó ötlet. A gányolás melegágya az én meglátásom szerint. Nem lehet dinamikusan kezelni. Újabb projektél újabb job?! De meddig?! Ha vége akkor meg átállítjuk egy újra?!
2. Az előbbi problémából következett egy másik. Az M branch közben haladt előre, de az xxxPM nem lett frissítve a változásokkal... Ez már egy nagy hiba volt, tudom. De ettől függetlenül, most megjelent az igény, hogy az xxxPM-ből is legyen release. Nem azért mert ez valaha is élesedhet, hanem azért, hogy UAT-ra tudjanak tenni verziót a laikusoknak, hogy teszteljenek... Tudják, hogy ez nem fog élesedni mert még nincs kész, nincs olyan állapotban. Csak kizárólag a teszt miatt. Ráadásul még két tagot hozzá kell csapni a verziószámhoz, hogy az állapotot jelöljük, így létrejön egy kvázi párhuzamos valóság... Valahogy ezt sem érzem egy kifinomult megoldásnak.
Érdekelne, hogy mi a meglátásotok, illetve, hogyan történnek az ilyen folyamatok nálatok?
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Ugyanazon verziok kozott semmi.
"Oracle announced that it would provide two binary distributions of the JDK. The Oracle JDK would continue to be delivered under the Oracle Binary Code License Agreement for Java SE. The second binary distribution is built directly from the OpenJDK source code without any modifications. This is released under the less restrictive GPLv2 license with classpath exception (CPE).
Oracle stated that their goal was to eliminate any functional differences between these two binaries. This will be complete with the release of JDK 11 in September. "A lenyeg az, hogy a kulonfele bugfixek es patchek _backportolasat_ csak az Oracle-verziora csinalja meg az Oracle, az OpenJDK-ra nem.
Tehat: kijon majd a JDK11. Aztan a 12. Kiderul valami bug. Az Oracle megpeccseli a 11-es Oracle JDK-t, a 12-es OpenJDK-t es a 12-es Oracle JDK-t. A 11-es OpenJDK-t nem. Szoval azert kell majd fizetned, ha akarsz tamogatast regi JDK-hoz.
Köszi.
Így már világos. -
MrSealRD
veterán
Én arra lennék kíváncsi, hogy a fizetős történeten kívül mi a különbség az Oracle JDK 11 és az OpenJDK 11 között?
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Ilyet a github is tud. Hogy miben van hátrányban? Nem tudom, hogy milyen spec igényeitek vannak. Release, snapshot, artifactory tuti van. Maven, gradle support, minden szar

Nagyon röviden, most van egy SVN + Jekins + Sonar + Jfrog artifactory kombó, amit használunk a fejlesztés során. De ez 3rd party üzemeltetés most amivel sok a baj... Ezért az egészet lokálba hozzuk át. És ha már 0-ról építjük akkor újragondoltuk meg verziót frissítettünk. SVN kuka, helyette lesz Git. Jfrog helyett meg Nexust néztük. Így jött ki ez a kis probléma. Még erősen a pilot szakaszban vagyunk...
Ha a gitlabbal megoldható, hogy kidobjuk a Jenkinst akkor az üzemeltetés lehet örülni fog, hogy kevesebb rendszerrel kell foglalkozni.
-
MrSealRD
veterán
Jenkinst gitlabbal ki lehet váltani.
Hm. Ez nem jutott eszünkbe. Most nem vagyok még képben teljesen mennyire használjuk ki a Jenkinst, de amit én tudok az a klasszikus SNAPSHOT és RELEASE build készítés, ami utána artifactoryba pakol... Ettől függetlenül lehet olyan képessége a Jenkinsnek amiben a Gitlab le van maradva?
-
MrSealRD
veterán
Használ valaki Gitlab + Jenkins + Nexus kombinációt? Mindenből az aktuális legfrissebb verzióval próbálunk egy zöldmezős projektet összerakni. A probléma abból adódik, hogy Jenkins 2 nem működik együtt Nexus 3-al, Maven projektek esetén. Ezt leírják a plugin mellé is, de már hónapok óta jelentették Jenkins és Nexus felé. Nincs valami trükk erre, hogy életre kelljen?
-
MrSealRD
veterán
Hát ha van public része a exceptionnek, akkor azt az 1-2 sort bedobhatod... Nekem legutóbb attól volt unmarshalling exception, hogy jött egy adatstruktúra amiben az egyik elem típusa date volt, és sima záró tag-et, küldtek érték nélkül. Na ezen totál eldobta magát... Először elkezdtem keresgélni, hogy hol tér el a séma, aztán végül ott volt benne, hogy nem tudta parseolni...nyilván mivel nem volt benne semmi.
-
MrSealRD
veterán
Sajnos 8 év után újra web servicekkel, és soappel ver a sors. Van egy webservice kliensem, aminek a requestjére érkező response, kb 10 darabb " unmarshalling exception: ? "-t okoz.
Hogy lehet a ?-et debugolni? Sajnos a ? cause nekem túl bőbeszédű, nem tudom melyik részét nézzem. Akkor rég úgy ment, hogy 654x újra és újra átnéztem mindent, majd újra... tényleg nem történt ezekben a borzalmakban fejlődés? Vagy van valami trükk?Hát lehet én tudok valamit rosszul, de nálunk ha ilyen séma eltérés van, akkor az unmarshalling nagyjából kidobja, hogy hol volt gondja... De én visszalépnék egyet. WSDL+XSD-k elvileg ott vannak. Abból meg kiderül, hogy mi kötelező és mi opcionális.
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Kotlin tudás annyira még nem fejlett. (De most szervezünk kis önképzőkört, hogy felhúzzuk.)
Egyébként semmi különösre nem gondoltam, csak most nem a feladathoz keresek eszközt, hanem szeretném leltárba venni a létező eszközöket. Ezek közül is azokat ami folyamtosa fejlesztés alatt van és várható, hogy túlél pár évet...
-
MrSealRD
veterán
Van egy jelenleg PHP backend amit Java-ra kellene átírni. (Ha most a konkrét feladatot nem ismerjük) Milyen megoldásokat lehet számításba venni? Frameworkök közül mivel érdemes foglalkozni. Springen kívül mi van amit érdemes megfontolni? (Ami biztos, hogy szerver oldalt kell írni.)
-
MrSealRD
veterán
Az a helyzet, hogy ha a vitákat letiltod, akkor továbbra is olyan témák lesznek, amiket 5 perc guglival el tud bárki intézni

Nem az összes vitát tiltotta le, csak ezt. Ez meg teljesen jogos volt. Akinek ilyen extrém véleménye van az nem hajlik arra, hogy vevő legyen más felvetésekre...Ebből egy parttalan vita lenne csak. Érdemi eredmény nélkül a végén személyeskedésbe fordulna.
-
MrSealRD
veterán
Ugyanaz az analógia... A puskázás csalás a dolgozatnál, ugyanígy a beadandót mással megcsináltatni szintén csalás... Te pedig ezt szeretnéd. Elég egyértelműen leírtad. Tisztességtelenül próbálsz játszani... Ez így nem oké. Tessék és küzdj meg a feladattal.
Egyébként egyértelmű, hogy itt segítséget nem fogsz kapni...Szóval egyszerűbb ha szépen továbbmész...és nem offolod tovább a topikot.
-
MrSealRD
veterán
Köszi a válaszokat.
Az a helyzet, hogy én is kb erre jutottam, csak valahogy nem hittem el, hogy ennyire nincs választék...
Apache POI-val volt egy nagyon kis tapasztalat évekkel ezelőtt... Az nem volt túl jó, de azóta biztos változott egy-két dolog. -
MrSealRD
veterán
Ha manapság xlsx és docx generálás a szándék, akkor milyen lehetőségek vannak az Apache POI-t leszámítva? Lehet ingyenes és fizetős is.
Ehhez még hozzá tenném a másik irányt, az ilyen fájlok feldolgozását akkor mi az ami jól használható?
-
MrSealRD
veterán
Majd holnap, most mobilról írok. Annyit csak, hogy aktív Vaadin alapú fejlesztésben vagyok, nem a levegőbe beszélek.
Vaadin tapasztalat engem is érdekelne.

-
MrSealRD
veterán
Van lehetőség arra, hogy úgy parameterezzunk egy programot hogy a jvm azt másik mappába cachelje le?
-
MrSealRD
veterán
-
MrSealRD
veterán
Beleakadtam egy problémába, de már lassan felgyújtom az egészet...
Primefaces (5.3.17) adja a <p:captca ... /> tagot. Szépen bedobom az xhtml-be, majd lerendereli a V2-es captchát. Bepipálom, hogy nem vagyok robot. Elfogadja. Eddig okés. Ezután egy commandButton-el lépnék tovább egy tabView-n de a captcha hibát dob, hogy a beírt szöveg nem egyezik meg a képen szereplővel....vagy valami hasonló. A lényeg, hogy nem működik helyesen a captcha.
Ezzel két probléma van.
1. Képeket dobál fel útjelző táblával...meg egyebekkel.
2. Elvileg semmi exrta nem kell csak a public/private key és a többit tudja magától. Gyakorlatilag a verifyValue résznél eldobja magát.Találkozott már valaki ilyen problémával? Esetleg használt már valaki V2-es kapcsát JSF-es projektben?
-
MrSealRD
veterán
Forráskódot nem tudsz adni, probléma konkrét leírását sem. Akkor én kevés vagyok ehhez

Legalább 10 féle módot próbáltam, már nincs meg csak max egy fél... A lényeg, hogy ezzel a (commandButton) gombbal szeretnék linket nyitni. Ehhez nem kell a forrás. Hanem egy kipróbált módszer...
Ha nulláról kéne feldobnod az Xhtml-be, akkor hogy csinálnád? -
MrSealRD
veterán
Egyébként commandLink lenne itt inkább a jó, mint a commandButton. Abból is a h:commandLink változat.
Forráskódot nem tudok adni. A problémákat nem tudom már pontosan leírni. Változatosak voltak. Kattintásra nem történt semmi....kb minden esetben.
Igazából egy commandButton-os workaroundra van szükségem...Azt nem dobhatom el. -
MrSealRD
veterán
Mi volt a tikk?
Ezt hogy érted?
-
MrSealRD
veterán
Primefaces-es problémám van. Remélem elfér itt. Adott egy CommandButton, aminek a lenyomására egy linket kell megnyitni ami egy pdf fájlra mutat. A CommandButton fix, a lényeg, hogy "mit pakolok bele".
Próbáltam már sima hagyományos linket, commandlinket, buttont, meg a jó ég tudja még, hogy mit, de mindegyiknek volt valami tikkje, és a google is nagyon bevitt az erdőbe.Tud valaki bevált működő módszert?
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Adott az alábbi kód részlet:
<p:commandButton value="GOMB" ajax="false"
onclick="PrimeFaces.monitorDownload(function(){$('.formMessages .ui-messages').empty()})">
<p:fileDownload value="#{myController.getPdf()}" />
</p:commandButton>(Liferay, primefaces, a fenti rész egy portletből van.)
Az a probléma, hogy miközben egy másik portletben tökéletesen működik, a jelenlegiben kizárólag IE10 alatt a gombra nyomva nem történik semmi. Ezt úgy értem, hogy a myController.getPdf() legelső sorába sem fut bele. Mintha egy üres gombot nyomogatnék. Firefox alatt jó. Más portletekben is van használva, detto ugyanez. Ott is jó IE10 alatt és firefox alatt is. A poén, hogy a commandButton helyett commandLink-et teszek akkor az működik. De ide mindenképpen button kellene...
Van valami tippetek mi lehet a gond?
Már betűként átnéztem az xhtml oldal kódját, de semmi...Firebug-al próbáltam nézni hátha van valami amit a firefox benyel, IE meg nem. De semmi.

-
MrSealRD
veterán
Én alapvetően nem sajnálom/sajnálnám a pénzt ilyen eszközökre, de elég kis %-ban tudok hatni erre a részre.
Egyébként ha már itt tartunk akkor JRebel és XRebel is van. Utóbbi nem túl régóta, de egyiktől sem vágom magam hanyatt. JRebel hektikus, néha nem csinálja a dolgát... Amúgy hasznos cucc. XRebel meg lassulást okoz, néha nem indul el tőle a saját gépemen futó tomcat...
-
MrSealRD
veterán
Köszönöm mindenkinek a javaslatokat, ötleteket.

floatr: Ezt most meglepve olvasom... Ha már mások is ezt workaroundot tolják...akkor nem számítok sok jóra.
bambano : DB kapcsolatot még nem néztem, ez még hátravan.
-
MrSealRD
veterán
Egy Vmware-es VM-ben MS Server 2008R2-n fut tomcat alkalmazásszerveren. Java 7.
Jelenleg úgy van, hogy a VM-nek van 1x GB RAM-ja. Ezen fut három tomcat...ebből az egyiket kellene vizsgálni. A tomcat úgy van paraméterezve, hogy max 4GB memóriával tud gazdálkodni. (-Xmx)
De elég magas a kihasználtság. Ha jól emlékszem átlagban >80%. Ráadásul ha nem kap restartot egy hétig akkor úgy belassul, hogy 1 usert nem kiszolgálni...nem, hogy több százat.
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Próbáld packagename-mel futtani. java elso.Elso
Így van ez a megoldás.Mégsem. Így sem lesz jó. -
MrSealRD
veterán
-
MrSealRD
veterán
Üdvözletem Uraim. Egyszerű kérdést teszek fel, elég kezdő vagyok még. CMD-ben javac-vel nincs gond, viszont mikor beírom, hogy "java Elso" akkor a következő hibát kapom.
"Error: Could not find or load main class Elso"
Ergo nem íratja ki amit akarok. Netbeans-ben gond nélkül kiírja. Mi lehet a probléma?
Biztosan jó könyvtárban vagy? (Ott ahol a class fájl van.)
-
MrSealRD
veterán
Szerintem nem hogy ok az alsó, de számomra az a jobb. Nyilván nem azért, mert a kevesebb sor jobb. Számomra olvashatóbb, ez persze attól is függ, hogy az ember milyen kódhoz van szokva.
Szmeby javaslata is jobb, bár erre egy metódus hívás már határeset, és valóban kontextustól függ, de ha egy ismétlődő, üzletileg jelentéssel bíró logikai kifejezés vizsgálatáról van szó, akkor metódus is indokolt lehet.Köszi a megerősítést. Egyetértek. A metódushívást azért nem vettem most bele mert ez nem ismétlődő. De ha az lenne akkor egyértelműen kiszervezném. Ez nem is kérdés.

-
MrSealRD
veterán
-
MrSealRD
veterán
Tedd azt.
1 sor mindig jobb, mint 5. Főleg, ha ilyen boolean marhulásból áll. Az egyik kedvenc "egysorosom":boolean isOk(String param) {
boolean ok;
if ("OK".equals(param)) {
ok = true;
} else {
ok = false;
}
return ok;
}Egyébként, ha még szeretnéd cizellálni, adhatsz valami szép, értelmes nevet annak a logikai kifejezésnek, valahogy így:
...
myObject.setOnePropertyValue(isConstant1Checked());
...
}
private boolean isConstant1Checked() {
return myVariable.equalsIgnoreCase(CONSTANT1) && checked;
}Bár a kontextus ismerete nélkül lehet, hogy nem így kell, vagy nem is lehet, csak arra akartam rávilágítani, hogy a bonyolult logikai kifejezéseket érdemes olvasható formába önteni. Akinek pedig nagyon furdalja az oldalát a kíváncsiság, hogy vajon mit is jelent az isConstant1Checked(), mert számára nem nyilvánvaló, majd belenéz abba az egysoros metódusba, esetleg még ad neki valami kifejezőbb nevet.
Egyébként ez már túlzás is lehet... csináld érzéssel, az a lényeg.
Ahogy szebb, olvashatóbb, nincsenek kőbe vésett szabályok. Akár maradhat úgy is, amilyenre átírtad. Örülök, hogy segíthettem.
---------------------------
#8354 MPeter87:
Ha már kifogytál a könyvekből meg az oktatóvideókból, keress magadnak feladatot és készítsd el. Van-e olyan igényed, problémád, amit lehetne automatizálni, amit egy szoftver megoldana? Akár a hobbiddal kapcsolatban, vagy akár amit el tudnál adni másoknak, mert szükségük lehet rá, vagy csak készíts egy 826-ik jegyzettömb, vagy naptár, esetleg rss olvasó alkalmazást. Csatlakozhatsz akár opensource fejlesztésekhez is, nézelődj pl. a githubon, keress olyan projektet, amiben látsz fantáziát, vagy csak ihletet ad egy saját projekthez. Persze az a legjobb, ha fizetnek is érte, csak akkor nem biztos, hogy olyan terméken dolgozhatsz, amit szeretsz is.Egyébként - ha van már rutinod - az előbb említett clean code tanulmányozása sem ördögtől való gondolat, mert szerintem az Angster könyben lévő példakódokban nem kevés code smell lehet. Már nem emlékszem, csak a hasonló oktatókönyvekkel szerzett tapasztalat mondatja ezt velem. Merem ajánlani Josh Bloch Effective Java könyvét (az angol változatot... hacsak nem szereted az interface-t felületnek hívni, mert akkor a magyar is megteszi), vagy uncle Bob (Robert C. Martin) Clean Code könyvét, videóit. Meg ha már a Martinoknál tartunk (
), Martin Fowler, és Kent Beck is egész jó könyveket írt a refactoringról meg a TDD-ről. De blogokat, cikkeket is találsz elvétve, pl. http://blog.cleancoder.com/, vagy http://martinfowler.com/Amúgy pont Robert C. Martin Clean Code könyvéből táplálkozom jelenleg főként... Néha azért túlzásnak érzem amit elsőre ír... Aztán belátom, hogy annyira nem is hülyeség.

-
MrSealRD
veterán
Van az alábbi kódrészlet:
if( myVariable.equalsIgnoreCase(CONSTANT1) && checked) {
myObject.setOnePropertyValue(Boolean.TRUE);
} else {
myObject.setOnePropertyValue(Boolean.FALSE);
}Amit az alábbi módon szeretnék rövidíteni:
myObject.setOnePropertyValue(myVariable.equalsIgnoreCase(CONSTANT1) && checked);Azért gondolkodok ilyesmiben mert mostanában olvasgatok Clean Code témában és próbálom megérteni ebben hol van a határ az ésszerűség és a hülyeség között.
Szóval az lenne a kérdésem, hogy a második egysoros verzió oké, vagy nem oké? Indoklást is kérnék. -
MrSealRD
veterán
Java EE probléma & Liferay probléma.
Nagyon zanzásítva: Oldal xhtml-be összerakva primfaces komponensekből... A commandButton rendered attribútumába meghívtam egy olyan osztály metódusát, ami amin van egy request annotáció. Nevezzük ezt mycontroller.giveMeBoolean(myParam1)-nek. A war fájlt kitelepítem tomcat-ra és oké. De ha a portletet amibe tartozik kinyomom liferaybe akkor ott NullPointerException-t dob a mycontroller osztályra...
A poén, hogy egy viszonylag egyszerű logika van a metódusba, ezért be lehetett tenni a rendered attribútumba. Így viszont működött. Elvileg valami életciklus beállítás más a Liferayben. Valaki képben van ezzel kapcsolatban? -
MrSealRD
veterán
Köszi. Ez a rész még kicsit zavaros nekem. De kellett még egy <p:ajax amibe a listener és a change volt megadva...
-
MrSealRD
veterán
Primefaces-ben egy lenyíló menü változása esetén az alatta lévő text mezőt kell frissítenem. Találtam pár megoldást, de nem vagyok teljesen rutinos a témában. Tudtok olyan egyszerű példát ami minőségre is megállja a helyét és nem mondják rá, hogy tákolás?
-
MrSealRD
veterán
-
MrSealRD
veterán
Össze kell dobnom egy futtatható JAR-t aminek a fele azonos könyvtárban lévő fájlokkal kell foglalkoznia.
Az aktuális könyvtár lekérdezését megtaláltam. Viszont két okból problémás ez nekem. 1. Nincs szükségem a teljes útvonalra. Igazából elég lenne ha valami relatív módon tudnék hivatkozni ezekre a fájlokra.
2. Windows és Unix környezetben egyaránt esélyes lehet a futtatás. Ilyenkor a / illetve a \ jeleket, hogyan tudom normálisan kezelni? -
MrSealRD
veterán
Örömmel látom, hogy aktívan neki is iramodtál a témának.

Én még hozzávenném a Hatékony Java-t is.

A Head First Design Pattern az jó könyv. Kezdésnek főleg.
Clean Coder-t most olvastam el félig. Szerintem kicsit még vicces is mikről ír.

Java EE és Spring témában zeroturnaround, mkyong szavakra keress rá. Van még pár, de hirtelen ez jutott eszembe.
-
MrSealRD
veterán
Hát igen, más meglepő dolog nemigen történhet. Esetleg egy exception.

A close nem flush-ol, szóval detached-be mennek az objektumaid.
De miért is tennél ilyet? Előtte kommitálj, és nem lesz baj.
A kommentes dolgot pedig teljesen jól látod. Azért van version control, hogy ne kelljen kommentel teleszemetelni a kódot. Én személy szerint ezeket a marker kommenteket sem bírom, szinte soha nincs rájuk szükség, de mint minden, ez is ízlés kérdése.

Igen ez a másik lehetőség. Az exception. Most nem tudtam öszedobni egy DB-t meg entitásokat, meg valid kódot, hogy kipróbáljam. De az exception-re lennék kíváncsi. Elszáll, vagy simán lefut és detached?
Wá, köszi. Ez eszembe sem jutott. 
Vannak élethelyzetek amikor fura nem életszerű kérdésekkel zaklatják az ember lelki békéjét. De mivel ilyen helyzet nem megy ki a kezem közül, ezért nem tudom rá a választ.
-
MrSealRD
veterán
Hibernate esetén, ha zárom a session-t, de maradt unsaved objektumom, akkor mi történik?
nem találom a doksiban ezt a résztElvileg simán detached lesz, nem...?
-
MrSealRD
veterán
-
MrSealRD
veterán
Persze, van version control... Inkább elméleti jellegű a kérdés. Én úgy gondolom, hogy ha már újraírtam, teszteltem, és okés, akkor nem kell otthagyni kommentbe....én törölném. Pont azért, mert ha mégis kellene akkor visszaállok egy korábbi verzióra az adott osztályból és megnézem. Csak arra lennék kíváncsi, hogy esetleg van-e valamilyen más szempont ami miatt ez jó lehet...
-
MrSealRD
veterán
Ha van egy összetett összetett metódusotok, ami tipikusan régről maradt meg. (Lehet, hogy eredetileg nem is ti írtátok.) Sikerült újraírni, optimalizálni...minden szép és jó.
A régi kódot van aki kommentben otthagyja, vagy inkább kitörlitek? -
MrSealRD
veterán
Valaki?

Liferay-hez látom van dokumentáció meg info... De a webmethods (integration server) témában nem sok minden van. Senki nem találkozott még vele?
-
MrSealRD
veterán
Még mielőtt nekiszaladnék a google-nek, két témában keresek amolyan quick guide jellegű irodalmat. Az egyik a Liferay a másik pedig a webMethods.
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
És az hogy eleve feldolgozást követően lemented mint pojo entitás miért nem jó? Ha tudod hogy mikor változik akkor update-tet tolsz rá mielőtt foglalkozol vele. Így az orm vagy akármilyen réteg szolgáltathat cache-t is hozzá, szóval még csak be se kell olvasni mindig ha nem változott de gyakran lekérdezik.
A betöltött fájl feldolgozás utáni állapota érdekes számomra. Erre az állapotra nem biztos, hogy gyakran van szükség. Lehet, csak hetente 1-szer, de lehet, hogy csak havonta... Ráadásul én ezt nem is fogom tudni mert ez már a user hatásköre lesz. Nekem azt kell megoldani, hogy az objektum állapota (ami leképzi a fájlt) a lehető leggyorsabban betöltődjön és utána indulhasson a következő fázis...
Köszi az ötleteket, mindenkinek. Sok kérdést vetett fel az amiket írtatok. Ezekre ki kell derítenem a választ a továbblépéshez.
-
MrSealRD
veterán
(#7674) emvy :
A deszerializáció során mindig tudom mit olvasok be. Fixen ugyanolyan objektum jönne befelé... a kérdés, hogy mennyire képes ez a folyamat gyors lenni. De úgy veszem ki a leírtakból, hogy nem lesz gond vele...(#7675) gygabor88:
A fájlméret önmagában nem lenne gond. Néhány száz Kbyte-tól néhány Mbyte-ig mennek. A fájl több különálló XML fájlból áll. Ezeket az XML-eket kell bejárni és ebből nem kell minden. Amire szükség van azt kiszedjük és egy objektum tárolja ezeket. De ez nem kell állandóan a memóriába. Viszont az XML fájlokat minden alkalommal benyalni elég erőforrás pazarlás lenne és lassú is. Sokkal gyorsabb ha előkapom egy táblából és deszarializálom aztán mehet is a további feldolgozása az objektumnak... -
MrSealRD
veterán
Napi fura kérdés.
Ha van egy objektumom...és én azt szerializálom. Majd ezt letárolom DB-ben. Később onnan beolvasom, deszerializálom, akkor ennek a két műveletnek a sebességét, hogy tudom megítélni gyorsaság szempontjából.
Ha másképp akarom megfogalmazni, akkor: Honnan tudom, hogy gyorsítható-e a folyamat?Bónusz kérdés: Nagyjából milyen futási idők jellemzőek a fenti folyamatokra? (Aki tud mondani példát adott méretre mi jött ki, annak nagyon örülnék)
Nem azért kérdezem, mert van kódom, vagy működő alkalmazás. Tervezési fázisban van egy projekt és éppen a felhasználható módszerek eszközök összgyűjtése folyik.
A lényeg, hogy van egy fájl inputon, aminek a feldolgozása után keletkezik egy objektum ami tartalmazza a fájlból szükséges dolgokat. De ezt a folyamatot nem akarom mindig futtatni, mert a fájl nem változik csak ritkán. Ezen kívül a performanciát is rontaná. Ezért arra gondoltam, hogy a szerializált formáját letárolom és amikor kell akkor beolvasom, deszerializálom és már a rendelkezésemre is áll az objektum, amit felhasználva mehet tovább a folyamat.
Ötletek észrevételek?
-
MrSealRD
veterán
Konkrétabban mit takar a "felokosítás"?
(#7528) sutszi:
Jaja, két számjegy viszont simán elfér a tálcaikonon (ld. HWiNFO64 tálcára kirakott kijelzői). Három már elég necces (a töltöttség kijelzésénél mondjuk csak egy esetben van erre szükség, 100%-nál
)... Igazából két számjegy esetén állapotjelzésre a tálcaikon a legjobb megoldás, háromnál para. De próbát megér, max. kisebbek lesznek a betűk, vagy 100% esetén egy teljes töltöttséget jelző egyéb ikont mutatsz, nem számot. 
Azóta nem is tudtam foglalkozni a kis projekttel...
meg más irányt kezdtem el kidolgozni. Javafx-ben használható patterneket kerestem... Bár ne tettem volna...Bele se gondoltam a 100-ba így hirtelen. Lehet akkor valami zöld lámpa jel lenne ott lent...az tetszik is.
-
MrSealRD
veterán
"Java tray icon" keresőszavakra Google első találata egy Stack Overflow-thread (rendkívül meglepő módon):
http://stackoverflow.com/questions/758083/how-do-i-put-a-java-app-in-the-system-tray
második találata a hivatalos doksi egy konkrét példával:
https://docs.oracle.com/javase/tutorial/uiswing/misc/systemtray.htmlÉs ja, AWT-s.
"JavaFX tray icon" keresőszavakat is nézegethetsz. Itt pl. azt írják kommentben, hogy "JavaFX will get it's own system tray support in a latter release once RT-17503 Provide system tray support is implemented. Until then, using the AWT system tray as demonstrated in the sample code in this gist seems to work fine."
Szerk.: szándékosan nem toolbarra kerestem rá, nekem speciel felhasználóként egy külön eszköztár nem is lenne szimpatikus, már ha megvalósítható (ne terpeszkedjen), sima tray icon viszont igen.
A második találat megvolt. A többit meg azért nem találtam meg mert nem "java tray icon" kifejezéssel kerestem.

Nagyon a toolbar felé mentem... A tray icon nem valami nagy...legjobb esetben is egy kétjegyű szám fér bele... Így állapotjelzésre nem a legjobb. Köszi ezen irányú véleményed. Még átgondolom a koncepciót. -
MrSealRD
veterán
2. What about this?
Tudtommal csak az awt tud ikont pakolni a system tray-re. Hogy buborékra képes-e, azt passzolom. Majd meséld el.Nem rossz. Az külön tetszik, hogy javafx. Egy másik funkcióra pont alkalmas is lesz.

A fenti témához viszont egy fixen a taskbarra ülő "valami"-t szeretnék használni. Két szerepe lenne. Az egyik, hogy mutatja a %-ot, a másik, hogy innen elérhető az alkalmazás fő ablaka.
-
MrSealRD
veterán
Szeretnék 2 dolgot megoldani Java-ban. Az eddigi kereséseim nem voltak túl eredményesek.
1. Lekérdezném az aktuális töltöttségi szintjét az akkumulátornak egy laptopon, ehhez kapcsolódóan még azt is, hogy csatlakoztatva van-e töltő vagy sem.
Ilyet találtam:
Kernel32.SYSTEM_POWER_STATUS batteryStatus = new Kernel32.SYSTEM_POWER_STATUS();
Kernel32.INSTANCE.GetSystemPowerStatus(batteryStatus);Létezik más módszer? (csak érdekelnek a lehetőségek)
2.
A startmenü jobb szélére lehet különböző toolbarokat pakolni. A lenovonak vannak hasonló wifi, meg akkufigyelő toolbarjai, illetve a batterybar-t tudom példának hozni.Java-ból megoldható ilyen windows-os toolbar készítése? Vagy ha nem is toolbar de annak a területnek a felhasználása állapotjelzés céljából?
-
MrSealRD
veterán
Ja..az mondjuk félig jogos...Csak hát indításonként ellenőrizni...
Ha éppen nincs netem akkor nincs fejlesztés...
Ezt addig nem fogom megérteni amíg nem lesz olyan szintű infrastruktúra mint az áram, vagy a víz. Addig inkább időszakos bosszúság mint szükséges feltétel.-------------
De egy témába vágó kérdésem is lenne. Windows Registry-t szeretnék írni olvasni.
A WinRegistry osztályt találtam eddig a leghasználhatóbbnak az eddigiek közül. Nem akarok JNI, 3rd party, windows api hívásos módszereket használni.Van esetleg valami ami még szóba jöhet?
-
MrSealRD
veterán
(Ami egy Amazon AWS-ben üzemelő instance-al akart kapcsolatba lépni.)
Talán emiatt? Valószínű, hogy standalone futtatva működött volna.
Ezt nem igazán értem.
Az IDEA nem hajlandó buildelni egy projektet, ha nem engedem ki a tűzfalon...
-
MrSealRD
veterán
Sikerült megoldani a problémát. Mindössze a tűzfalon keresztül engedélyeznem kellett az IDEA-t kifelé. (Ami egy Amazon AWS-ben üzemelő instance-al akart kapcsolatba lépni.)
Csak tudnám mi szüksége van a build-hez erre...
-
MrSealRD
veterán
-
MrSealRD
veterán
-
MrSealRD
veterán
Remote GUI-t akar írni nem klinest, vagy rosszul értelmeztem?
-
MrSealRD
veterán
Nem arrol van szo, hogy nagyon hosszu lenne a forditasi ido, csak folyamatosan rebuildelek, mert kiserletezem valamivel -- viszont a hotswap bizonyos okok miatt nem mindig mukodik. Ergo ha valamin valtoztatok, akkor varnom kell kb. 15 masodpercet, amig latom az eredmenyet, es ez most sok (mert rengetegszer kell varialni -- nem is azzal van gond, hogy sok idot elvesz, csak idegesito -- olyan, mintha egy mobilon akadozna az UI).
De ugy latom, kicsit megvarialom a workflow-t, es atallok REPL-re.
(Amikor C++-t csinaltam, ott volt akkora (ill. olyan szenne template metaprogramozott) projekt, hogy a projektben resztvevo osszes ember desktopja egyben compile szerverkent is funkcionalt, es amikor valaki forditott, akkor egyszerre kapott kb. 150-200 CPU magot, es igy tartott negyed oraig. Ja, es az IntelliSense nem mukott az IDE-ben, tehat siman benezhettel egy zarojelet valahol, es akkor a negyed ora vegen kaptal egy hibauzenetet, hogy itt hianyzik egy zarojel, forditsd ujra. Egyebkent meglepo, hogy meg lehet szokni azt, hogy preciznek kell lenni, amikor gepelsz. Az IntellIJ meg kabe elore megmondja, hogy ot perc mulva milyen nevu konstruktorparametert szeretnel, es felajanlja
)Hasonló jellegű élményem már volt. Akkor AWS-ben műkő oracle-be írtam pl/sql-t és viszonylag sok variálás volt... és a sok kis másodpercből akkora késleltetés lett, hogy inkább lehoztam local-ba mert elfogyott a türelmem.
150-200 mag...az szép...gondolom ott aztán kétszer meggondoltátok mielőtt rányomtatok a fordításra...
-
MrSealRD
veterán
-
MrSealRD
veterán
Ja, értem már.

-
MrSealRD
veterán
A Scala meg a JavaEE szerintem nem fuggenek jobban ossze, mint barmilyen mas Java-s technologia. Ha a Scala ennyire tetszik, akkor nezd meg az extrem oldalat, pl. a Scalaz-t. Ha most jonnek ki az egyetemrol, akkor tuti megprobalnam elkerulni a Springet meg a J2EE-t, ennel sokkal erdekesebb dolgok is vannak a vilagban, es penzt keresni massal is lehet.
Csak az utolsó mondatra.: Van benne igazság...de kicsit úgy írod mintha ezekkel nem lehetne, vagy "alantasabb" lenne... Komolyan kérdezem mi az más a véleményed szerint?
-
MrSealRD
veterán
Mondtam, hogy nem akarok flémet. És nem is a német srác amatőrségéről szól. A nácit meg a nevében is kikérem....
Szerintem félreérted. Bár nem szerencsés a szóhasználat, de nem arra gondolt amire te gondolsz...
-
MrSealRD
veterán
Használtam Redmine-t majd később JIRA lett belőle... Mindkettőben voltak logikátlanságok, már alap funkcióknál...de alapvetően használható volt mindkettő. A JIRA nekem kényelmesebb volt, bár néha azt éreztem űrhajó a Redmine-hoz képest.
Most ActiveCollab van éppen...érdekes. Egyszerű, gyorsan használható, de egyértelműen vannak hiányosságai a JIRA-hoz képest...
Azt a 10$-t mindenképpen megéri. -
MrSealRD
veterán
Egyébként nagyon csúnya dolog javában a publikus adattag. Ilyen pl a Player osztályban a number. Ugyan működik a program de az egyik objektum-orientált elvet sérti meg a program, mégpedig az egységbezárást (Encaptulation). Illik private-ként deklarálni az adattagokat, és getter/setter metódusokkal intézni az adattagok írását, olvasását.
Hát azért ez egy picit nem ilyen egyszerű. Azzal, hogy private-té teszel minden tagváltozót és mindenre csinálsz "no-brain" gettert/settert (mindenféle logika nélkül, csak változó beállítás, változó visszaadás, mint a ahogy a java kódok nagy részénél látható) ezzel lehetővé téve, hogy kívülről megváltoztassák az objektumod belső állapotát, még nem vagy sokkal közelebb az egységbezáráshoz ahhoz képest, hogy mindent publicon hagysz.
Ez igaz, de később ha logika kell vagy bármilyen módosítás a get/set műveletbe, akkor melyiket könnyebb módosítani? A kész getter/setter-ekbe beleírni vagy minden public-ot private-ra, majd getter/setter-ek ráadásul ha használtad már valahol akkor azokat is át kell írni... ?!
-
MrSealRD
veterán
A kérdés ennél kicsit bonyolultabb.
Itt érdemes megnézni a Private Members in a Superclass című részt.
Tehát az alosztály nem örökli az ősosztály privát tagjait. Azonban ha ezekhez a tagokhoz az ősosztályban írsz public vagy protected metódusokat akkor az alosztály ezáltal hozzáférést kap az ősosztály privát adattagjához...
Ezt egyébként gyakorlati úton is lehet bizonyítani.:
Ha a ClassA-t átírod az alábbi kódban a saját osztályaid nevére, akkor ez kiírja az adott osztály adattagjait. Ez a kód amúgy a stackoverflow-ról van. Van ott pár érdekes kérdés erről a témáról.
Szóval ha lefuttatod akkor látni fogod, hogy az ősosztályodra listázni fogja az adattagokat, de a belőle származó alosztály esetében nem fog megjelenni a listában az ősosztály private adattagjai.public static void main(String[] args) {
inspect(ClassA.class);
}
static <T> void inspect(Class<T> klazz) {
Field[] fields = klazz.getDeclaredFields();
System.out.printf("%d fields:%n", fields.length);
for (Field field : fields) {
System.out.printf("%s %s %s%n",
Modifier.toString(field.getModifiers()),
field.getType().getSimpleName(),
field.getName()
);
}
}De olvastam olyat is ahol azt írták, hogy inkább azt modjuk örökli, de nincs hozzáférése...

-
MrSealRD
veterán
Sziasztok!
Korábban már volt egy kis Java ismeretem, de most nyáron jobban belemélyültem a dologba, éppen az öröklődésnél és az osztályoknál járok. Mindent értek, találtam egy kis dolgot, ami nem tiszta.
A könyv amit olvasok (Agyhullám - Java) azt írja, hogy "A privát tagok nem öröklődnek."
Én írtam egy A osztályt, aminek van egy int típusú privát tagja, és ezt el lehet érni és módosítani két publikus metódus segítségével. Aztán csináltam egy B osztályt, ami az A-t bővíti.
Létrehozok egy B objektumot, de ugye a B objektumnál is meg tudom hívni az elérő és módosító metódusokat, tehát a B mégis rendelkezik azokkal az adattagokkal?
Vagy ez azért működik, mert a B típusú objektum közben egy A objektum is (tehát a többalakúság miatt)?
Vagy hogy lehet a legjobban értelmezni ezt a mondatot?Az A osztályodban az adattag private, de a hozzá tartozó getter & setter public. Ezért azok bárhonnan láthatóak. Ez így van jól.
Ha csinálsz egy public adattagot az A osztályban akkor látni fogod, hogy B osztályban el tudod érni getter & setter nélkül... Ez mondjuk nem túl egészséges...de ha tovább olvasol majd meglátod.
A getter & setter lényege pont az, hogy ellenőrzött módon tudj az adattagokhoz hozzáférni...
-
MrSealRD
veterán
Ez egyre jobb...srácok... Mindenki tud olyat mondani ami neki jó, de van valaki akinek fel áll tőle a hátán a szőr...

-
MrSealRD
veterán
Való igaz ez egy hiányosságom amit majd rövid úton szeretnék pótolni...
Elmondom vázlatosan, hogy volt anno. Kell egy ERP. Használjuk a Netbeans Platformot mert az jó. Használjunk Maven-t mert az jó...Menet közben kellett (volna) mindkét témát megtanulni 0-ról... Éppen ezért ki lett osztva mindenkinek egy-egy téma... Maven-t pont nem én kaptam, akinek meg kellett volna az nem csinálta meg...
-
MrSealRD
veterán
Nah de a "végeredményt" jar-t,war-t, ear-t bármit csak össze kell állítani valahogy, ehhez minimum egy ant kell, még ha az IDE-ben is van ez megoldva. Végülis lehet külön projektben, akkor viszont függőségként be kell hivatkozni a teszthez. Csak nem írnak bele a kódba a teszt helyett, bár bármi megtörténhet alapon akár jogos is lehetne.
Bocs. Netbeans-en megy a dolog. Szóval Ant van.
Csak arra akartam célozni, hogy nem annyira nagyméretű a dolog... -
MrSealRD
veterán
(#5631) raggg :
1. Maven most nem indokolt...csak félig van rálátásom a projektre egyelőre...
2. Korábbi projektben érintett, de mondjuk úgy több hátránya volt mint előnye akkor.(#5632) xTc Semmit... Két sima Java Application, amihez valakinek teszteket kellene írni. Amolyan bemelegítő feladat. Csak koncepcionális problémák akadtak arról, hol és hogyan legyen a JUnit benne...én meg mondtam, hogy ott a helyén. De közbe jött a dolog, hogy hát külön projektbe kellene, mert aki a tesztet írja...lehet elront valamit...és lehet vissza is commit-ol...
Szóval érted.Én csak arra voltam kíváncsi mi a best practise.
-
MrSealRD
veterán
Helló!
Véleményem szerint rossz a megközelítés. Ha adott A projekt, amit tesztelnénk unit tesztekkel, akkor a unit tesztek a projekt részét képezik. Ezért én az A projektben tartanám őket. Illetve ha pl maven build tool-t használsz/használtok a projekthez, akkor eléggé jól definiált helyen kellene, hogy a unit tesztek legyenek src/test package.
Maven szerencsére nincs...
Sajnos oka van, hogy bepróbáltuk ezt a fenti gondolatmenetet... Egyetértek egyébként és én is azt tanácsoltam, hogy a tesztek legyenek az adott projekt Test Libraries-ben. -
MrSealRD
veterán
Belefutottam ma egy kis JUnit használati kérdésbe.
Van 'A' project (netbeans) amit tesztelni kellene. DE nem a project Test Packages-be menne a dolog, hanem egy önállóan létrehozott 'B' projectbe. Ez egyébként tök üres. Csak a unit testek elhelyezésére és futtatására szolgálna.
A kérdés, hogy van ebben az elméletben valami hiba?
Az is felmerült, hogy amikor Netbeans-ben a New Test for Existing Class-al hozzá akarok adni egy újat a Test packages-be akkor Browse esetén nem látom 'A' project struktúráját, csak a 'B'-t amiben vagyok. Ez mondjuk annyira nem meglepő, de 'A' hozzá van adva a 'B'-hez mint Library... Ez is normális?
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy Felhasználók OFF topicja
- Hálózati / IP kamera
- sziku69: Fűzzük össze a szavakat :)
- Milyen ÚJ notebookot vegyek?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Nyílt világú Középfölde-RPG készül a Warhorse-nál
- Mibe tegyem a megtakarításaimat?
- Óra topik
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- Apple Mac Mini M2 8/256GB eladó! Patika állapot, 12 hó garancia
- ASUS SimPro Dock 2 (90NX0460-P00030), bontatlanul, 1 év garival eladó!
- Apple iPhone 13 Pro Max 128GB eladó! 100% akku, megkímélt állapot, 12 hó garancia
- Apple iPhone 13 Pro Max 128GB eladó! 100% akku, megkímélt állapot, 12 hó gar
- Apple iPhone 13 Pro Max 128GB eladó! 100% akksi, szép állapot, 12 hó garancia
- Wacom Bamboo One CTF-430 rajztábla
- HP EliteBook 830 G6 13,3" i5 8365u, 16GB RAM, 128GB SSD, jó akku, számla, 6 hó gar
- Beszámítás! VALVE Steam Deck OLED 512GB SSD kézikonzol garanciával hibátlan működéssel
- Egérpadok, billentyűsapkák(keycapek), csuklótámaszok /ARCANE/DUCKY/GLORIOUS/
- iPhone 13 Pro 128GB 100% (1év Garancia) - ÚJ EREDETI AKKUMULÁTOR
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




Így már világos.
Én nem választok max javasolhatok. Meg támogatom az üzemeltetést, hogy a jelenlegi fejlesztői funkciók maradéktalanul átkerüljenek az új környezetbe.

Apache POI-val volt egy nagyon kis tapasztalat évekkel ezelőtt... Az nem volt túl jó, de azóta biztos változott egy-két dolog.
És jó a kávé? 
Azóta nem is tudtam foglalkozni a kis projekttel...

![;]](http://cdn.rios.hu/dl/s/v1.gif)



