Hirdetés
- Házimozi haladó szinten
- Kormányok / autós szimulátorok topikja
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Projektor topic
- Részben visszahozza a GPU-s PhysX-et az új GeForce driver
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
- AMD Navi Radeon™ RX 9xxx sorozat
- Fejhallgató erősítő és DAC topik
- Házimozi belépő szinten
- VR 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?:))
- Házimozi haladó szinten
- Kormányok / autós szimulátorok topikja
- gban: Ingyen kellene, de tegnapra
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- Kerékpárosok, bringások ide!
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- HBO Max
- Bittorrent topik
- További aktív témák...
- Dell Pro 14 Plus 2-in-1 14" FHD+ IPS érintő Ultra 7 268V 32GB 512GB NVMe IR kam gar
- GAMER Asus ROG NVIDIA 6gb dedikált / i7-10750h / 16gb ram / 500gb ssd / MAGYAR rgb bill / win11
- Prémium Lian Li O11 Gamer/Workstation PC - Ryzen 9 5950X, RTX 4070 Super, brutális teljesítmény
- Lenovo ThinkPAD 15 GEN2 / Intel core i5-11generáció / 16gb DDR4 ram / 512gb NvMe SSD / WIN11
- LOQ 15IRX9 15.6" FHD IPS i7-13650HX RTX 4050 16GB 512GB NVMe magyar vbill gar
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- Dell 14 Latitude 5430 FHD IPS i7-1255U vPro 4.7Ghz 10mag 16GB 256GB Intel Iris XE Win11 LTE Garancia
- LG 27GP95RP - 27" Nano IPS - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 600
- HIBÁTLAN iPhone 15 Pro Max 256GB Natural Titanium -1 ÉV GARANCIA -Kártyafüggetlen, 100% Akkumulátor
- Apple iMac 19.2 i5-8500 Radeon Pro 560X 4GB 16GB 256GB SSD 21.5" 4K Retina
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


