Hirdetés
- Azonnali VGA-s kérdések órája
- Kormányok / autós szimulátorok topikja
- Plazma TV topic
- Ami Kínában OnePlus Pad Pro, az errefelé mégis csak Pad 2 lett
- Milyen TV-t vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- 5.1, 7.1 és gamer fejhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- Milyen egeret válasszak?
Ú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?:))
- Videó stream letöltése
- Luck Dragon: Asszociációs játék. :)
- Azonnali VGA-s kérdések órája
- Napelem
- Kormányok / autós szimulátorok topikja
- A fociról könnyedén, egy baráti társaságban
- Nothing Phone 2a - semmi nem drága
- PlayStation 5
- Router gondok
- Az AI gáz: megfullad a Föld a fosszilis fogyasztástól
- További aktív témák...
- HIBÁTLAN iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen
- LG 77C4 - 77" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - 1000 Nits
- magyar billentyűzet - 136 - Lenovo Legion Pro 7 (16IRX9H) - i9-14900HX, RTX 4080 - 4 ÉV GARANCIA!
- BESZÁMÍTÁS! ASRock B550 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Zalman S2 TG Seasonic 750W
- BESZÁMÍTÁS! MSI B650 R5 7600 32GB DDR5 512GB SSD RX 9070 XT 16GB Zalman Z10 Plus Seasonic 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


