Hirdetés
- Hobby elektronika
- TPM (trusted platform module) topic
- Azonnali informatikai kérdések órája
- Shield TV-t csinált a Shieldből az NVIDIA
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED monitor topic
- Milyen TV-t vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Gaming notebook topik
- Vezetékes FEJhallgatók
Ú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?:))
- Sapphire Pulse RX 6600 XT - eladó!
- ÚJ DELL XPS 14 9440 PROFI Laptop, -70% 14,5" Ultra 7 155H 12Mag 16/512 FHD+ 120Hz /Millió! Ft/
- Vadonat új garanciás laptopok hihetetlen áron! Szeptember Októberi lista! Razer blade zephyrus
- ÚJ HP ENVY x360 Érintős Hajtogatós Laptop Tab -30% 15,6" AMD RYZEN 7 7730U 8Mag 16/1TB FHD
- 512MB (3db) - 1GB (16db) - 2GB (21db) DDR2 RAM-ok (és RAM-Kitek)
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-H GAMING alaplap garanciával hibátlan működéssel
- Vállalom Xianomi Okos kamerák, szoftveres javíttását
- iKing.Hu - Samsung Galaxy S25 Edge Prémium dizájn, AI-élmény a zsebedben 12/512 GB
- Apple iPhone Xs 64GB, Kártyafüggetlen, 1 Év Garanciával
- REFURBISHED - DELL Performance Dock WD19DCS (210-AZBN)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest