- iPhone topik
- Fotók, videók mobillal
- Apple iPhone 16 - ígéretek földje
- Telekom mobilszolgáltatások
- Itt a Google Pixel 10a EU-s energiacímkéje
- Az Apple állítólag tovább halasztja a Gemini segítette Siri bevezetését
- One mobilszolgáltatások
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
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.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Meta Quest 2 128GB Full Extra csomag (Elite Strap akkuval és tok, Kiwi grip, Fit Pack)
- EliteBook 840 G11 14" FHD+ IPS Ultra 5 125U 16GB 256GB NVMe magyar vbill gar
- Noctua NH-U9S chromax.black (teljes gyári szett)
- Zbook Studio G8 15.6" 4K OLED érintő i7-11800H RTX 3070 16GB 512GB NVMe magyar vbill gar
- Garanciális Gamer PC Ryzen 5 5600GT Rtx 3060ti 8GB 16GB RAM 512GB SSD
- Gamer billentyűzetek /Akko/Monsgeek/Asus/SteelSeries/Das Keyboard/Ozone/Deltaco/DE/EN/UK/Számlával!/
- 210 - Lenovo IdeaPad 5 Pro (16ARH7) - AMD Ryzen 7 6800HS, RTX 3050Ti
- 227 - Lenovo LOQ (15IRX10) - Intel Core i7-13650HX, RTX 5060
- LG 32GS94UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Space Black - 1 ÉV GARANCIA -Kártyafüggetlen, MS4332
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


