- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mr. Y: Motoros sztorik #06
- Luck Dragon: Asszociációs játék. :)
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Magga: PLEX: multimédia az egész lakásban
- Őskoczka
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
Új hozzászólás Aktív témák
-
Mukorka
addikt
válasz
Aethelstone #6199 üzenetére
Szerk: Már értem, nem a joinolt lista duplikált hanem maga a végeredmény. Ez látszólag tök jogos, a linkeden le is írja a választ erre
-
Aethelstone
addikt
válasz
Mukorka #6195 üzenetére
Régi. Még a 3.x-es széria
Bár, http://stackoverflow.com/questions/18753245/one-to-many-relationship-gets-duplicate-objects-whithout-using-distinct-why szerint ez a normális.
-
Aethelstone
addikt
válasz
Mukorka #6195 üzenetére
Nem
Alapvetően ez egy évek óta működő, tesztelt struktúra. Csak a kolléga felvetésére írtam, hogy ez nem egyedülálló eset, máshol is előfordul duplikáció, amit vagy DISTINC-tel vagy Set használatával List helyett lehet kifejelni. Nálunk List van, ahogy látszik, de nem kívánom módosítani, ezért lett DISTINCT.
-
Mukorka
addikt
válasz
Aethelstone #6194 üzenetére
Véletlenül a CorrelationRule id nem a CorrelationRuleSet táblában van?
Nekem gyanús hogy a distinct azért oldja meg mert így nem talál több ugyanolyan recordot amiről aztán a hib megállapítja hogy ugyanaz de a hozzá tartozó kapcsolatokat hozzáadogajta a meglévő listához.
(#6194) Aethelstone: Nem tudom milyen hibernate verziót használtok de mi százával használunk ilyen kapcsolatot és az tuti hogy ilyen hibával nem találkoztam még
-
Aethelstone
addikt
Azért, mert az annotációk szerint LAZY, viszont ha kell minden, akkor azt EAGER-ben kell ugyi. A sima JOIN meg ugyancsak LAZY, ahogy én tudom. Attól lesz EAGER , hogy kap egy FETCH-et is.
Forráskóddal:
@NamedQuery(name = "correlationRuleSet.eager", query = "select distinct crs from CorrelationRuleSet crs left join fetch crs.correlationRules")
})
public class CorrelationRuleSet extends AbstractAclEntity {
private static final long serialVersionUID = -9143224663183869606L;
@Column(name = "name", length = 256)
private String name;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "correlationRuleSet")
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@LazyCollection(LazyCollectionOption.EXTRA)
private List<CorrelationRule> correlationRules = new LinkedList<CorrelationRule>(); -
floatr
veterán
válasz
Aethelstone #6190 üzenetére
Eager-hez minek fetch?
Egyébként erre gondoltam, igen
-
Aethelstone
addikt
válasz
Aethelstone #6190 üzenetére
Nos, a Hibernate doksi szerint teljesen normális, hogy duplikátumok vannak. A Set használatát javasolják.
-
M_AND_Ms
veterán
"Nézem ezt az Angster féle könyvet, mennyire gáz hogy kb 11 éves már? Érdemes ebből elkezdenem tanulni a 0-ról?"
Az objektumorientált szemlélet 11 évvel ezelőtt is ugyanaz volt, mint ma. A javaban a String se változott azóta. Jól is néznénk ki, ha 11 év alatt az alap dolgok érvényüket vesztették volna. Persze, ma már fogsz korszerűbb(nek kikiáltott) technológiákat találni bizonyos problémákra, de ha majd azokba belenézel akkor rájössz, azok is csak az örök érvényű alap dolgokból építkeznek. Csak megírták helyetted a frappáns megoldást az adott problémára.
Én a relációs adatbázisokról minden alap dolgot az 1978-ban kiadott Halassy féle könyvből tanultam.. Ott volt leírva jól és érthetően az összes dolog. Még az államvizsgára is ebből készültem eben a témában (2003-ban)
-
Aethelstone
addikt
válasz
jetarko #6179 üzenetére
Eh, pont most ütköztem bele egy hasonló problémába
Duplikált eredmény. Egy DISTINCT megoldotta, de nekem még nem tetszik így.
szerk:
Pontosabban NamedQuery-t használunk. Az OneToMany alapból Lazy, de Eagerhez írtunk egy FETCH JOIN-os queryt, ami a rohadt életbe duplikál. Egy SELECT DISTINCT megoldotta. Nézegetem a netet, hogy mi lenne a szebb megoldása....
-
Phvhun
őstag
válasz
Aethelstone #6186 üzenetére
Köszi.
Ikon kép miatt kell.
Szerk: Nézem ezt az Angster féle könyvet, mennyire gáz hogy kb 11 éves már? Érdemes ebből elkezdenem tanulni a 0-ról? Delphi és php-ben van sok tapasztalatom, szoval csak javát kezdem 0-ról.
-
Aethelstone
addikt
A beolvasás valszeg sima get. Nekem az adattartalom sokkal gyanúsabb....mert az annotációk elvileg jók és a Set-tel hibamentes, akkor ott olyasmi lehet, hogy a DB-ben valami kaki adat van. Bár ha az jól van felépítve, nem is lehetne....constraintek, unique indexek, stb.
-
Phvhun
őstag
Mi a legjobb megoldás arra hogy a java programomat exe fájllá alakítsam?
-
floatr
veterán
válasz
Aethelstone #6182 üzenetére
Nomeg azt, ahol beolvassa az adatokat
-
Aethelstone
addikt
válasz
sunnysys #6180 üzenetére
Tehát az alapvető programozási szemléletet (vagy hogy is nevezzem) is meg kellene tanulnom.
Ezt hivatalosan tervezési mintának vagy design patternnek nevezik. Rengeteg ilyen témájú cikk van a neten, azokból lehet kiválóan tájékozódni. Egyébként ez a számológépes dolog szerintem így rendben van. Nem hiszem, hogy egy ilyen kvázi egyszerű feladatot nagyon el kellene bonyolítani. Persze lehet. Csinálhatsz JTextFieldből származtatott saját TextField-et, ami már elvégzi alapból a parseolást, de nem biztos, hogy a befektetett munka megéri. Ha viszont tanulni akarsz, akkor érdemes lehet belevágni
Gyorsan haladni? Alapvető szabály, hogy akkor lehet igazán hatékonyan megtanulni programozni, ha van értelmes feladat. Nem telefonregiszter és nem DVD kölcsönző nyilvántartás. Viszont komolyabb, életszagú, szopós feladatok csak éles munkahelyi környezetben szoktak adódni
-
sunnysys
tag
válasz
M_AND_Ms #6176 üzenetére
Köszi!
Na, igen, többek között ezért is szeretnék valakit találni, aki ezzel foglalkozik, és akivel kontrollált körülmények között tudok haladni. Eddig általában mind az Arduino (C++ alapú) programozása, mind a Java programozása során megtaláltam az adott nyelvben, az adott feladathoz szükséges megoldásokat, de fogalmam sincs, hogy azok a legjobb megoldások, vagy csak jó megoldások voltak-e, vagy esetleg "épp, hogy megoldások" voltak, de semennyire nem voltak pl. elegáns megoldások. Pl. pár hete leprogramoztam egy egyszerű számológépet Javaban, ami úgy működött, hogy a TextField, getText által adott értékeket alakította át ParseFloat utasítással, amelyekkel aztán matematikai műveleteket végzett, majd az eredményt ismét String-ként jelenítette meg a TextField-en. Mivel csak magamtól, innen-onnan szedegetem össze a tudásomat, ilyen - gondolom nem túl szerencsés - megoldásokat találok ki. Tehát az alapvető programozási szemléletet (vagy hogy is nevezzem) is meg kellene tanulnom. Ezt is el lehet sajátítani önállóan?(#6178) axioma:
Én is sokat merítek mások kódjából. Ha volt valami feladat, amire sehogy nem jöttem rá magamtól, megkerestem egy hasonlót a neten, és felhasználtam. Ha működött, átolvastam sokszor, memorizáltam, magamévá tettem, így legközelebb, hasonló esetben már tudom használni.Szóval, érzem én, hogy ma már szinte mindent meg lehet tanulni a neten elérhető anyagokból, csak szeretnék minél gyorsabban haladni.
-
jetarko
csendes tag
Sziasztok
Hibernate-ben van egy onetomany kapcsolatom:
@OneToMany(mappedBy="team", fetch = FetchType.EAGER)
private List<Driver> drivers;és a párja:
@ManyToOne
@JoinColumn(name = "team_id")
private Team team;Spring MVC-t használok és megírtam dao-kat,service-ket ha ez számít. xml-ben semmi mappingolást nem állítok.
Amikor lekérem az egyik csapathoz tartozó pilótákat, akkor vmiért többször teszi bele a listába ugyanazokat az elemeket. Van amikor A,B,A,B,A,B de van h A,A,B,B,A,A,B,B sorrendben kerül a listába. Ha átírom set-re megoldódik a probléma, de gondolom listánál se ez lenne a normális működés. Vmi tipp? -
axioma
veterán
válasz
sunnysys #6175 üzenetére
JATE, amikor me'g annak hivta'k, ha csak a programozas a kerdes. Igaz, volt egy java speckoll, de a srac (phd-s) annyira lelkes volt, hogy csak a lelkesedese meg morzsak jottek at. Aztan amikor atkerultem egy java-s projektre, az aktualis munkahelyem kuldott el egy tanfolyamra (ami elvileg kezdo volt, gyakorlatilag C-s gyakorlat nelkul meghaltal volna), es utana meg training on the job
Ezt egyebkent kiemelnem, nalam rendszeresen nem elhanyagolhato szerepet jatszott, hogy megkerestem a mar meglevo (remelhetoleg hozzaerto altal irt) programkodban azt a reszt, ami hasonlot csinalt mint nekem kellett, es masoltam, tipustol/mennyisegtol fuggoen kodot vagy refactor copy, meg modositottam a sajat igenyekhez. Tok sok mindent fel lehet igy deriteni, es raadasul a hibakeresesi skill is novekszik (hogy kovess le egy hivasi fat vagy mukodest).
-
M_AND_Ms
veterán
válasz
sunnysys #6175 üzenetére
Én tanultam a főiskolán programozást (elsőnek TurboPascal, aztán meg Java keretében - pont az Angster könyvet kaptuk), de az igaz javas ismereteimet később a munkahelyem napi gyakorlatban szereztem (illetve itt még elvégeztem a Sun által tartott tanfolyamokat), mivel itt bedobtak a mélyvízbe.
Természetesen autodidakta módon is eljuthatsz akármeddig. A legfontosabb, hogy csináld, ehhez viszont kellenek értelmes feladatok, amikben a megvalósítandó dolgokat nem alakítgathatod csak azért, mert a tudásodhoz képest kihívásokat állít eléd. Pont ezek azok amiket le kell küzdened, ki kell kaparnod a megoldást, utána kell olvasnod és kérdezősködnöd ill.,sokat-sokat kell próbálkoznod. Ettől okosodsz!
-
sunnysys
tag
(#6171) szgergely:
köszi!
megnézem ezeket az oldalakat. az "alapok" fejezetekben lévők jellemzően már mennek, de nem gond, szerintem végigmegyek a feladatokon.(#6172) milangfx:
megnéztem az első videót (a munkahelyemen
), nagyon tetszik, köszönöm!
(#6173) M_AND_Ms,
(#6174) Skroll:az Angster-féle könyvekről már hallottam, de még nem néztem bele. pótolni fogom. magyar nyelvű könyvek közül egyébként most az Agyhullám, Java címűt olvasom.
a Lynda.com-os címet is köszi! szerintem amíg tudok, első körben eljutok az ingyenes tutorialokkal, könyvekkel.amúgy, a programozók (illetve Ti) jellemzően mind főiskolán/egyetemen végeznek? esetleg tanfolyamon, vagy magántanárral (vagy akár autodidakta módon is) el lehet jutni olyan szintre, hogy programozókén elhelyezkedjen az ember?
-
Skroll
csendes tag
válasz
M_AND_Ms #6173 üzenetére
Az Angster-féle könyvek valóban jók. Az első könyv itt érhető el PDF-ben: Objektumorientált tervezés és programozás - Java 1
A második könyvet nem tették ki (még) ingyen, kapható is újonnan. (Bár találkoztam már szkennelt PDF-fel abból is)Szintén jók a Lynda.com féle anyagok, ezek videó tutorialok angolul, rengeteg témában, többek között jávában, több szinten, illetve magáról az objektumorientáltságról, a tervezésről is vannak videók. Az oldal fizetős (25$/hó), de megéri, ha ilyesmivel foglalkozol, azonban az anyagokba való betekintésre másutt is van mód.
Egyébként itt egy egyhetes ingyenes kipróbálási lehetőség, ha ezen keresztül regisztráltok Ja, nem fűződik hozzá anyagi érdekeltségem.
-
M_AND_Ms
veterán
Belenéztem. Botrányos!
Amikor azt mondja az elején, hogy a Java kvázi objektumorientált, akkor már megszédültem. Aztán amikor kifejtette, hogy "az objektumorientáltság azt jelenti, hogy osztályokat kell majd létrehoznunk" akkor már nagyon féltettem a kezdő, zöldfülű hallgatóságot. A "be fogom mutatni a Class Library néhány osztálykönyvtárát" elszólásnál már tudtam, ez nem tudja mit beszél, nem ismeri a szavak jelentését, nem tudja tudását átadni, egyszerűen alkalmatlan arra, hogy oktasson. (azon túl, hogy a sok nyökögésből, összevissza gondolatfoszlányokból nagyon nehéz bármilyen összefüggést kihámozni)
Annak, aki most ismerkedik a java-val és új neki az objektumorientáltság annak én az Angster féle Java könyvet ajánlom. Semmi fellengzős szakzsargon, nem akar mindjárt profinak látszani, lemegy a zöldfülűek szintjére és türelmesen elmeséli miről is van szó.
-
0xmilan
addikt
válasz
sunnysys #6170 üzenetére
Még egy hasznos link: itt Java gyakorlat 1-től 4-ig. Van szerencsém élőben hallgatni, szerintem nagyon jó előadó.
-
boost
veterán
válasz
sunnysys #6170 üzenetére
További hasznos tutorial oldalak:
https://www.udemy.com/java-tutorial/
-
sunnysys
tag
Köszi szépen! Megnéztem, értettem, tanultam is belőle!
Mindenkinek köszi a biztatást! Úgy tűnik, nem vagyok még lekésve semmiről.
Ettől függetlenül azért szeretnék minél gyorsabban haladni, ehhez pedig találni valakit, aki Java programozással foglalkozik, és adna néhány magánórát. Szóval, ha bárkinek van ötlete, hogy kitől vehetnék órákat, írja meg, pls!
Köszi!
-
Jim-Y
veterán
Lol, wtf. JavaZone 2014 Teaser O.o
-
sunnysys
tag
válasz
0xmilan #6161 üzenetére
Köszi, már meg is találtam, és feliratkoztam az Android programozás kurzusra.
Az előbbi hozzászólásomat pedig kiegészíteném, mert most átolvasva látom, hogy feleslegesnek tűnhet egy mondat. Azzal, hogy 35 éves, közgazdász vagyok, érzékeltetni szerettem volna, hogy 1. nincs értékelhető előképzettségem, 2. meg vagyok késve rendesen.
Szóval, emiatt szeretnék mindenképpen tanárt találni, hogy a lehető leggyorsabban fejlődhessek. (Persze, nem kell a szó szoros értelmében vett tanárnak lennie.
)
-
sunnysys
tag
Sziasztok!
Java tanárt keresek. Tudtok esetleg ajánlani valakit, aki magánórákat adna?
Háttér:
Pár nap múlva 35 éves leszek, közgazdász. Kb. 1-2 éve valami projekthez muszáj volt jobban beleásni magam az Excel rejtelmeibe, és autodidakta módon elkezdtem makrókat írogatni. Itt megtanultam néhány nagyon-nagyon alap dolgot a programozásról. Aztán úgy egy fél éve megismerkedtem az Arduinoval, és próbáltam tovább mélyíteni a programozási (alap)ismerteimet. Néhány hónap után rájöttem, hogy milyen jó dolog a Google AppInventor felületen megírt Androidos programokkal irányítani a mikrokontrollert, ezért eldöntöttem, hogy meg szeretnék tanulni Androidot programozni. Ekkor elkezdtem Java tutorialokat, könyveket, videókat nézegetni, és nagyon megtetszett a dolog. Úgy érzem, jó lenne ezt rendesen megtanulni, mert nagyon élvezem - még ezen az alapszinten is - a programozást, és ki tudja, hátha egyszer főállásban is ezzel foglalkozhatok majd.
Tehát egy nagyon kis rálátásom már van a kódolásra, minden nap foglalkozok vele pár órát, haladok is valamennyire, de szeretnék sokkal gyorsabban fejlődni. Tanfolyamra nem szeretnék egyszerre egy nagyobb összeget kiadni, de szívesen áldoznék pénzt arra, hogy valaki heti 1-2 alkalommal foglalkozzon velem.
Az elszántság óriási, nem okoz gondot meló mellett éjjel 2-ig fennmaradni, ha valamit szeretnék megoldani. Úgy gondolom, egy jó tanárral viszonylag gyorsan tudnék így haladni.Köszi!
-
Daws
újonc
Sziasztok, aki Windows 8-ban programoz az talán megtudja mondani, hogy Windows 8-ban hogyan tudom a rendszerváltozókat szerkeszteni? A szerkesztés gomb nem működik a többivel együtt. (szürke mind)
-
-
boost
veterán
válasz
jetarko #6146 üzenetére
Szia,
szerintem szakdogára a primefaces teljesen jó. Ott nem kell azzal foglalkoznod, hogy mi lesz vele 5 év múlva (mivel JSF kompatibilis, ezért max lecseréled egy másik frontendre, ellentétben a GWT-vel, és a vaadinnal), vagy hogy hogy is van a licenszelése (mert szakdoga)Egyszeru" benne programozni, és látványos is, szóval pont az, ami egy szakdogafeladatra kell.
Offtopic: Szakdogánál arra vigyázz, hogy mindig a feladatra koncentrálj, és az azon kívül eso", de szükséges dolgokat a leheto" legegyszerübben oldd meg. Tehát, ha esetedben a Primefaces vagy GWT csak egy eszköz, és nem a szakdoga tárgya , akkor gyorsan válassz ki egyet, és lépj tovább, ne merülj el a részletekben.ùgyis lesz elég problémád a szakdoga tárgyával
-
floatr
veterán
válasz
PumpkinSeed #6154 üzenetére
Mondjuk ezek azért eléggé fontos dolgok, hogy hogyan definiálsz egy metódust, mik a kivételek. Ezek nélkül el sem érdemes kezdeni egy sort sem írni. Javaslom, hogy kapj elő egy könyvet java témában, vagy fuss végig az oracle gyorstalpalóján.
(#6146) jetarko szerintem nyugodtan végigfuthatsz azon a szálon, mert ezek a frontendek nem igazán kötődnek a springhez amúgy sem. Van aki a GWT-t és tsait favorizálja, van akinek az AMF jön be, van aki a tisztán JS alapú frameworkökre esküszik. De olyan is van, amikor a legjobb az AJAX és DHTML mentes megoldás, olyankor pl a bootstrap lehet a barátod.
(#6147) M_AND_Ms lassan írni kéne már egy összefoglalót, az ilyen kérdésekhez
-
DNReNTi
őstag
válasz
PumpkinSeed #6151 üzenetére
Ej. Nem kéne ezt mán' php által tudni?
-
WonderCSabo
félisten
válasz
PumpkinSeed #6151 üzenetére
-
PumpkinSeed
addikt
Valaki meg tudja mondani, hogy a try catch mit takar?
-
bucsupeti
senior tag
válasz
WonderCSabo #6149 üzenetére
Jogos! Köszönöm!
-
WonderCSabo
félisten
válasz
bucsupeti #6148 üzenetére
akkor a new operátorral null-t kapok, azaz nem jön létre az objektum?
Azért ez a kettő állítás nem igaz.
public class Vmi {
public Vmi(boolean shouldThrow) {
if (shouldThrow) {
throw new RuntimeException();
}
}
}
public static void main(String[] args) {
Vmi vmi = new Vmi(false); // most a konstruktor rendesen lefut
try {
vmi = new Vmi(true); // most a konstruktor dob
} catch (Exception e) {
}
System.out.println(vmi);
}Ezen a ponton, ha null-t kapnál, akkor a vmi változó értéke null lenne. De ez nem igaz, hiszen a konstruktor "vissza se tér", így a változó marad az előző állapotában, azaz az első Vmi példányra mutat.
-
bucsupeti
senior tag
Sziasztok!
Jól sejtem hogyha a konstruktorban kivételt dobok, akkor a new operátorral null-t kapok, azaz nem jön létre az objektum? Próbálgatás alapján így van, csak erősítsétek meg nekem pls.
szerk: közben megtaláltam a választ... de azért érdekel a véleményetek a témáról!
-
jetarko
csendes tag
Sziasztok!
Nem rég kezdtem tanulgatni a Spring MVC-t és összedobtam pár kisebb weboldalt. Neten szinte minden példa JSP-s, de olvastam ,hogy elavult technológia ezért Velocity-t is használgattam, de ez se mai.
Nézegettem, hogy van kismillió frontend technológia, de nem teljesen tisztázódott le bennem, hogy is működnek ezek és miket lehet együttesen működésre bírni. Ugye ezek template engine-ek html+css+js-sel.
Ahogy láttam a GWT és Vaadin-ba a nézetet java-ba lehet írni, de ezt a generálos dolgot meg furának tartom, mert biztos megvan a limit meddig lehet eljutni vele, meg gondolom ez nem opció spring-gel. Mellesleg a swing-es gui-k összedobását se élveztem túlzottan.
Mit javasoltok a primefaces, backbone,bootstrap,angular.js stb közül ami passzol a spring-hez és kevésbé vannak korlátai. Az idő amíg megtanulni tart kevésbé fontos,inkább a lényeg, hogy hosszabb távon tudjam használni. Majd kb félév múlva kéne elkezdeni írnom a szakdogát és gondoltam addigra belejövök. Vagy maradjak velocitynél és gyúrjak rá a html/css/js/jquery kombóra? Olvastam, hogy volt hasonló kérdés nem rég, de nem Spring specifikus volt. -
floatr
veterán
válasz
WonderCSabo #6144 üzenetére
Épp írni akartam, hogy
new StringBuilder(20).append(i).append(j);
-
WonderCSabo
félisten
Azért hozzátenném, hogy a fordító nagyon okos, és a + operátor esetében is StringBuildert használ az összefűzéshez. Szóval olvashatóság érdekében nyugodtan meg lehet tartani az operátoros jelölést (itt mondjuk az pont ronda). Pl.
Integer b = // valahonnan
String a = b + "hehe" + 4;Az erre fordul:
NEW java/lang/StringBuilder
DUP
INVOKESPECIAL java/lang/StringBuilder.<init> ()V
ALOAD 4
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
LDC "hehe"
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
ICONST_4
INVOKEVIRTUAL java/lang/StringBuilder.append (I)Ljava/lang/StringBuilder;
INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
ASTORE 5 -
Karma
félisten
-
0xmilan
addikt
int i=1;
int j=2;
//String asd = Integer.toString(i) + Integer.toString(j);
//String asd = Integer.toString(i) + j;
//String asd = "" + i + j;
//String asd = i + "" + j;
System.out.println(asd);A téma adott: 2 int összefűzése. A kikommentezettek közül melyiket használnátok és miért?
-
theiron320
aktív tag
Sziasztok! Tervezek írni egy kisebb alkalmazást, szeretnék egy menüt készíteni (mint játékoknál a főmenü) ahonnan más helyekre lehet eljutni. Lenne egy JFrame amihez adnák két panelt, az egyik lenne a főpanel ahonnan be kell jelentkezni, a másik pedig az ahova kerülne bejelentkezés után a felhasználó. Ezt úgy lehetne megoldani, hogy a JFramehez egyszerre adom hozzá a két panelt és megfelelően állítgatnám setVisible metódussal a láthatóságot, vagy van erre valami általánosabb / elfogadottabb módszer?
-
PumpkinSeed
addikt
válasz
WonderCSabo #6131 üzenetére
M_AND_Ms
Köszönöm a segítségeket.
-
M_AND_Ms
veterán
válasz
WonderCSabo #6128 üzenetére
Ez továbbra is int-t fog visszaadni. Legalábbis azt szándékozik.
-
WonderCSabo
félisten
válasz
PumpkinSeed #6124 üzenetére
static int input() {
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
return string;
} -
Jim-Y
veterán
Más ..
-
M_AND_Ms
veterán
válasz
PumpkinSeed #6124 üzenetére
static String input(){....
-
PumpkinSeed
addikt
válasz
WonderCSabo #6102 üzenetére
Már csak a return-el van probléma, hogy lehet string-et returnolni?
-
zserrbo
aktív tag
Nem felvágni akarok, de nem most kezdtem rögtön egy tervezési mintával, hanem egy könyvet olvasok, ami csak kitért a Singletonra is. Igyekszem az alapokat minél jobban megérteni. Sajnos mikor feltettem a kérdésem a nyilvánvalót nem láttam
hogy az simán csak a visszatérési érték típusa. Persze köszönöm, hogy segítetek. Igazából itt elsősorban nem a Singleton-t nem értettem, hogy mire való, hanem csak a metódus fejlécénél értetlenkedtem.
-
boost
veterán
válasz
zserrbo #6119 üzenetére
Igen, az a visszatérési típusa. Azért jobb lenne, ha patternek helyett elo"ször simán a Java nyelvvel foglalkoznál.
Erre a patternre egyébként egy jó példa, ha van egy adatbáziskapcsolatod, és a programod összes lekérdezésénél ezt a kapcsolatot szeretnéd használni. Ilyenkor az elso esetben belefut az if-null-ba, és létrehozza a kapcsolatot, majd a többi esetben a már egyszer létrehozott kapcsolatot adja neked oda. Ilyenkor minden ugyanazt az objektumot ( és nem csak ugyanolyat) kapod meg, és nem hoz létre minden lekérdezésnél egy új adatbáziskapcsolatot a fenti példában.
-
zserrbo
aktív tag
válasz
WonderCSabo #6118 üzenetére
Sajnálom, ha félreérthető voltam esetleg én erre a sorra gondoltam végig:
...
public static Singletonpelda getInstance() {
if (instance == null) {
instance = new Singletonpelda();}
return instance;
}
....Ahogy írtam utólag gondolom azért kell a Singletonpelda a metódus fejlécébe, hogy megegyezzen a metódus visszatérési értékével a típusa, de akkor a "Singletonpelda" simán a visszatérési érték típusa, mint a double/int,stb vagy más?
-
WonderCSabo
félisten
válasz
zserrbo #6116 üzenetére
private Singletonpelda() {}
Erre gondolsz? Ez egy konstruktor. A konstruktor neve mindig megegyezik az osztály nevével, más nem is lehet, így lehet megtalálni, továbbá nincsen visszatérési értéke.
Singletonnál szokás privát konstruktort definiálni, mivel kívülről nem szabad példányosítani az osztályt (hiszen csak egy példánya lehet), ezt a privát konstruktor megakadályozza. A {} a konstruktor törzse, ami üres. Így talán érthetőbb:
private Singletonpelda() {
} -
zserrbo
aktív tag
válasz
WonderCSabo #6115 üzenetére
Azt hiszem most jöttem rá így, hogy végigolvastam, amit írtál. Mivel a Singletonpelda metódus egy Singletonpelda példányt ad vissza ezért kell a Singletonpelda a metódus fejlécébe, de valójában milyen szerepben van ott (arra gondolok, hogy a private az láthatósági módosító, a Singletonpelda mi pontosan itt)?
-
zserrbo
aktív tag
válasz
WonderCSabo #6113 üzenetére
De mikor meghívom a main metódusban a getInstance() metódust még nincsen, azért írtam, hogy eredetileg. Static kulcsszó nélkül nem menne emiatt nem?
-
zserrbo
aktív tag
Kicsit belekavarodtam. Az osztálynak eredetileg nincs érvényes példánya, és érvényes példánymutató nélkül pedig nem tudunk meghívni nem-statikus tagfüggvényeket. Ezért statikus a getInstance() metódus, de mit jelent itt a "Singletonpelda"?
Előre is köszönöm.
public class Singletonpelda {
private static Singletonpelda instance = null;
public static Singletonpelda getInstance() {
if (instance == null) {
instance = new Singletonpelda();
}
return instance;
}
private Singletonpelda() {}
public void hello() {
System.out.println("Hello");
}
public static void main(String[] args) {
Singletonpelda i = Singletonpelda.getInstance();
i.hello();
}
} -
M_AND_Ms
veterán
válasz
plaschil #6103 üzenetére
Az egyes bean-ekben azokat a private final mezőket, amiknek nem kívülről adsz értéket, nyugodtan teheted static-ba is. Ha pl száz példányt készítesz egy ilyen bean-ből, akkor ezek a mezők is százszor fognak létrejönni, inicializálódni, százszor foglalják a helyet a memóriában, miközben sohasem változnak és mindegyik bean-ben ugyanazt az értéket képviselik. Static esetén csak egyszer történik minden.
Pl: private static final double HAZAI_KILEPESI = 70.99;Az érték visszaadó getterekben (pl: getPontKodErtek) lévő logikát, már a konstruktorba hajtsd végre. Ha százszor hívják meg az ilyen gettert, akkor százszor fog lefutni ez a logika és mindig ugyanazt fogja visszaadni. Tehát elég egyszer kiszámolni a konstruktorban, ahol beadod az ertek paramétert.
-
plaschil
aktív tag
Hm... az if-es dolognál én is szívtam a fogamat, hogy vajon nem létezik erre valami sokkal egyszerűbb megoldás?! Mert ha most lett volna 100 féle PontKod-om az azé' csak 100 if.
Aztán úgy voltam vele, hogy egyelőre - ha működik - nem bántom. Nem csak ezt, semmit. Ezért is jöttem ide, és tettem közzé, hogy az avatottabbak segítsenek néhány dologgal, amit ők/ti egyből kiszúrtok, és tanuljak belőle. Amiket javasoltál, meg fogom nézni.
Minden percét élveztem a fejlesztésnek. Kár, hogy vége, de majd találok valami más kihívást. -
Szmeby
tag
válasz
plaschil #6108 üzenetére
Amikor enumot csinálsz, nyugodtan tekintsd őket konstansnak. Vagyis a legtöbb esetben felesleges mellé static final cuccokat definiálni, azok simán elvannak az enum obejktumon belül is. Pl. a KapacitasTipus-ban.
Vagy eleve a double értékeket adod be a konstruktornak (0.5 és 1.0), vagy ha ragaszkodsz az egész számokhoz is, akkor a konstruktorban elosztod százzal. Így a getter sokkal egyszerűbb lesz, megszűnik a felesleges komplexitás (if).Valami ilyesmi módon:
public enum KapacitasTipus {
M0(100), M10(50);
private final int kapacitasTipus;
private final double ertek;
private KapacitasTipus(int tipus) {
this.kapacitasTipus = tipus;
this.ertek = tipus / 100.0;
}
public int getKapacitasTipus() {
return this.kapacitasTipus;
}
public double getKapacitasTipusErtek() {
return this.ertek;
}
}De akár második konstruktor argumentumként is belőhető a másik szám, ha erre tényleg szükség van.
Ami a komplexitást illeti, amikor gigászi if-else vagy switch-case füzéreket látsz, akkor érdemes elgondolkodni azon, hogy talán nem a legjobb helyen vannak. Gondolok itt a Szerzodes.createList() metódusra, ahol egy stringből enum objektumot készítenél. Szerencsére erre létezik az enumban beépített metódus:
pkod = PontKod.valueOf(kod);
...
ktipus = KapacitasTipus.valueOf(kapacitastipus);Amit tudni érdemes róla, hogy exception-t dob, ha olyan stringet kap, amihez nem talál enum példányt. Ha szükséges, ezt ajánlott lekezelni egy try-catch-ben.
A PontKod átalakításával még átláthatóbb kódod lesz.Az enumnak van még pár hasznos beépített metódusa (name(), ordinal(), values()), érdemes őket megismerni.
-
raggg
senior tag
válasz
plaschil #6105 üzenetére
FeldolgozGUI:59:
txtKivalasztott.setText(file.getName());
Itt a fájl nevét kéred ki, nem az útvonalát. Valószínűleg file.getPath()-szal okés lesz.
Kis magyarázat: a getName() a fájl nevét adja vissza (nem az útvonalat), így csak a forrás könyvtárban lévő fájlokra fog működni.
-
válasz
plaschil #6103 üzenetére
> public boolean kozeEsikE(Date aktualis, int teliKezdete, int teliVege) {
Ez egy eleg fura metodusnak tunik nekem, a masodik es a harmadik bemenoparameterrel nem kezdesz semmit.
> if (this.ertek.equals("HAZAI_KILEPESI")) {
Itt erdemes lenne forditva nezni az egyenloseget (("HAZAI_KILEPESI").equals ... ), hogy ne legyen problemad a null ertekekkel. -
plaschil
aktív tag
Na sikerült is megoldanom a problémát, a GitHub desktop alkalmazásával.
Tegnap befejeztem a kódot is, ma reggel meg félálomban egy GUI-t összedobtam rá.
Tudom, nem egy nagy wasziszdasz, de nekem ez a 2. GUI-s alkalmazásom, és az első ami ennyire komplex lett, és a hibakezeléssel nem is nagyon foglalkoztam.
Kurva sokat tanultam:
csv feldolgozás, Date, Calendar osztályok, enum, parse-olás, és legfőképp előre gondolkodás. -
WonderCSabo
félisten
válasz
PumpkinSeed #6101 üzenetére
Jó, de mégis az a String hogy van elválasztva a többitől, honnan tudod, hogy mi a vége? Alapesetben a Scanner whitespace-ek mentén darabol. Ha ez Neked megfelelő, akkor elég meghívnod így:
String string = scanner.next();
De ha nem akkor saját elválasztót is beállíthatsz a useDelimiter() metódussal.
-
PumpkinSeed
addikt
válasz
WonderCSabo #6097 üzenetére
Sajnos nem intet szeretnék beolvasni, hanem Stringet.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Vigneau interaktív lokálblogja
- Dell notebook topic
- One otthoni szolgáltatások (TV, internet, telefon)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- 4K-s üzleti monitor érkezik az EIZO gondozásában
- Óvodások homokozója
- eBay-es kütyük kis pénzért
- Samsung Galaxy S25 - végre van kicsi!
- Vicces képek
- TCL LCD és LED TV-k
- További aktív témák...
- AMD Ryzen 7 5700X processzor eladó /Garanciás/
- Xbox Series S + 2 kontroller
- Dell laptop eladó i5 11. gen, 8GB RAM, 512GB SSD, újszerű állapotban!
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! HP Elitebook Folio 9470M - i5-3GEN I 8GB I 256GB SSD I 14" I DP I Cam I W10 I Garancia!
- AKCIÓ! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Zalman 600W
- AKCIÓ! ASROCK H310CM i5 9600K 32GB DDR4 500GB SSD RTX 3050 8GB DeepCool Tesseract SW 500W
- REFURBISHED - DELL Thunderbolt Dock WD19TBS docking station (210-AZBV)
- Telefon felvásárlás!! Xiaomi Redmi Note 12, Xiaomi Redmi Note 12 Pro, Xiaomi Redmi Note 12 Pro+
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest