- Milyen egeret válasszak?
- Hardverkiállítás a hónap vége felé közeledve
- TCL LCD és LED TV-k
- Azonnali informatikai kérdések órája
- Projektor topic
- Bemutatkozott a HHKB legújabb, Topre kapcsolókkal szerelt billentyűzete
- Milyen billentyűzetet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Navi Radeon™ RX 9xxx sorozat
- Mini-ITX
Új hozzászólás Aktív témák
-
Szmeby
tag
Hogyan lehet vizsgálni, ha egy Objektum példánya létrejött (van, létezik)?
if (myObject != null) {
System.out.println("myObject objektumom létezik, hivogathatom a metódusait");
} else {
System.out.println("myObject objektumom nem létezik, ha ráhívok egy metódusára, NullPointerException a jutalmam");
}vagy
if (myObject instanceof String) {
System.out.println("myObject objektumom létezik, sőt azt is tudom róla, hogy String típusú, így bátran Stringgé castolhatom");
}Ha eleve String típusú a myObject változód, akkor felesleges instanceof-olni.
Pl.:String myObject = "kiskutya";
A bal oldalon jelölve vagyon, hogy ez legalább egy String, és mivel a java erősen típusos nyelv, compile error figyelmeztetne, ha valamit elcsesztél volna.Object myObject = "kiskutya";
Ebben az esetben nem lehetsz teljesen biztos benne, hogy ez egy String (annak ellenére, hogy erről a nyilvánvaló példáról ordít, hogy az), de ha szeretnéd String-ként kezelni, akkor castolnod kell mielőtt meghívod rajta a String osztély metódusait ((String)myObject).isEmpty(); Ha pedig ezt biztonságban szeretnéd elvégezni, akkor a castolás előtt érdemes csekkolni egy instanceof-fal, hogy valóban String van-e benne.
A null nem String, a null nem is Object, a null semmi. Az instanceof mindig false-szal fog visszatérni egy null referenciára, mert a semmiről nem lehet eldönteni annak típusát.És ha létrejött a példány, akkor még lehet null tartalmű, amire hogyan kérdeznétek rá? (azon túl, hogy kiteszed egy lokális változóba, ahogy az előbb írtad (ha nincs más, marad ez a módszer, csak elég bénácskának néz ki a kezdő szememnek))
Ha létrejött a példány, nem lehet null.Kiteheted lokális változóba, ha úgy kényelmes:
String product = info.getProductString();
if (product != null && product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De nem kötelező, használhatod a gettert is újra meg újra:
if (info.getProductString() != null && info.getProductString().equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De akár meg is mókolhatod a lekérdezéskor, hogy kiküszöböld az API hülyeségeit:
String product = info.getProductString() == null ? "" : info.getProductString(); // ez egy ternáris operátor, egyfajta kompakt if: ha a getter null, akkor üres stringet használ helyette, különben meg a getter által visszaadott nemnull értéket
if (product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}A java könyvek, vagy pl. az oracle tutorial relatíve korán elmagyarázza a java objektumok, referenciák, nullitás témakörét, érdemes rászánni azt a kis időt.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Szakított a OnePlus és a Hasselblad
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- Milyen egeret válasszak?
- Hardverkiállítás a hónap vége felé közeledve
- Linux kezdőknek
- TCL LCD és LED TV-k
- Reklámblokkolók topikja
- Okosóra és okoskiegészítő topik
- Anime filmek és sorozatok
- Azonnali informatikai kérdések órája
- További aktív témák...
- Asus TUF Gaming A15 GAMER LAPTOP 15.6" FHD IPS 144Hz -25% Ryzen 5-7535HS 16GB, 512GB RTX 2050 4GB
- XBOX Series S 512GB, 6 hónap teljeskörü garanciával, üzletből eladó!
- ASUS VivoBook Max X541UVK i5-7200U 8GB RAM 512GB SSD NVIDIA GeForce 920MX 2GB Windows 11
- Szép! HP EliteBook 840 G10 Hordozható Ultrabook Fémház 14" -50% i5-1335U 32/1TB Iris Xe FHD+
- Új OEM INTEL XEON E-1241V3/E-1270V3
- Apple iPad A16 128GB,Újszerű,Dobozával,12 hónap garanciával
- HIBÁTLAN iPhone 11 Pro 256GB Space Grey -1 ÉV GARANCIA - Kártyafüggetlen, MS3173, 100% Akkumulátor
- Új FULL HD webkamera + Számla
- ÚJ AKKU!!! Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
- GYÖNYÖRŰ iPhone 12 mini 256GB Black-1 ÉV GARANCIA -Kártyafüggetlen, MS3626, 100% Akkumulátor
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő



