Hirdetés
- Milyen okostelefont vegyek?
- Hivatalos a OnePlus 13 startdátuma
- Milyen hagyományos (nem okos-) telefont vegyek?
- Bemutatkozott a Poco X7 és X7 Pro
- Google Pixel topik
- MIUI / HyperOS topik
- Samsung Galaxy S24 - nos, Exynos
- One mobilszolgáltatások
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Ez lehet az Apple hajlítható telefonjának formája, mérete
Ú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?:))
- Miskolc és környéke adok-veszek-beszélgetek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Linux felhasználók OFF topikja
- Hobby elektronika
- PlayStation 5
- Nem a képgenerálásnak van köze a képmegjelenítés egyenletességéhez
- Óra topik
- Nyíregyháza és környéke adok-veszek-beszélgetek
- PH! Darts
- Renault, Dacia topik
- További aktív témák...
- Új Gamer PC - Ryzen 7 5700X / RX 9060 XT 16GB / B550M WIFI / 32GB RAM / 1TB M.2 NVMe SSD / 650W
- BeQuiet 750W táp
- Gamer PC-Számítógép! Csere-Beszámítás! I7 8700K / RTX 3070 / 32GB DDR4 / 1TB SSD
- !!! Raktár kisöprés!!! DDR3 8 - 16GB (10600/14900) ECC szerver RAM
- Újszerű ASUS Zenbook 13 i7 11.gen /16GB RAM/1TB SSD/300 nit
- Apple iPhone 14 Plus 256GB / 100%-os akkumulátor / 12 hónap jótállással
- Samsung Galaxy S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 12 Mini 64GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3453
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3172
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


