Hirdetés
- Samsung Galaxy A52s 5G - jó S-tehetség
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Amazfit Helio Strap – képernyőmentesen
- iPhone topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Motorola Edge 70 - többért kevesebbet
- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
Ú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?:))
- Samsung Galaxy A52s 5G - jó S-tehetség
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- exHWSW - Értünk mindenhez IS
- Forza sorozat (Horizon/Motorsport)
- Spórolós topik
- 5.1, 7.1 és gamer fejhallgatók
- LEGO klub
- Magga: PLEX: multimédia az egész lakásban
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Gitáros topic
- További aktív témák...
- Steam Deck vadi új 512GB SSD-vel, 100% akku, Windows 11 Pro, tok, töltő, karcmentes, mint az új!
- Dell Latitude 9410 i7 / 16GB RAM / 512GB SSD 2in1 érintőkijelző Profi gép, kedvező áron!
- AKCIÓ! Dobozos új Lenovo Yoga Slim9 Laptop! / i7-1165G7 16 GB 1 TB SSD UHD IPS TOUCH Garancia
- Intel 12th gen. i5-12500 / B660M / 16GB DDR4 félkonfig
- Toshiba Survillance S300 Pro 8 TB megfigyelőrendszerekhez - 2 db
- BESZÁMÍTÁS! MSI H310M PRO i5 9600K 16GB DDR4 240GB SSD 2TB HDD RTX 2060 Super 8GB NZXT Source 600W
- AKCIÓ! Apple MacBook Pro 16 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- ÚJ BONTATLAN Apple Macbook Air 15,3 M4 10C CPU/10C GPU/16GB/256GB - Égkék - HUN - mc7a4mg/a 3 év gar
- GYÖNYÖRŰ iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3360, 100% Akkumulátor
- Gamer PC-Számítógép! Csere-Beszámítás! I7 12700E / RTX 3070Ti / 32GB DDR5 / 1 TB SSD
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


