Java instanceof operator: een uitgebreide gids
Java instanceof operator: een uitgebreide gids
Ontdek hoe Java's instanceof operator werkt, met duidelijke voorbeelden die basisgebruik, erfenis en interfaces dekken.
In Java laat de instanceof operator je verifiëren of een object behoort tot een specifieke klasse of interface. Het retourneert true als de runtime-type van het object overeenkomt met het gespecificeerde type, anders false.
objectNaam instanceof klasseNaam;
Hieronder is een eenvoudig voorbeeld dat de operator demonstreert met een String en een gebruiker-gedefinieerde klasse.
Voorbeeld: Basale instanceof gebruik
class Main { public static void main(String[] args) { String naam = "Programiz"; boolean resultaat1 = naam instanceof String; System.out.println("naam is een instantie van String: " + resultaat1); Main obj = new Main(); boolean resultaat2 = obj instanceof Main; System.out.println("obj is een instantie van Main: " + resultaat2); } }
Uitvoer
naam is een instantie van String: true obj is een instantie van Main: true
Beide checks retourneren true omdat naam inderdaad een String is en obj een Main instantie.
Let op: In Java is String een referentietype, geen primitief.
instanceof gebruiken met erfenis
De operator is onmisbaar bij het werken met polymorfische hiërarchieën. Het bevestigt dat een subklasse-instantie ook het superklassetype voldoet.
// Superklasse class Dier {} // Subklasse class Hond extends Dier {} class Main { public static void main(String[] args) { Hond h1 = new Hond(); System.out.println(h1 instanceof Hond); // true System.out.println(h1 instanceof Dier); // true } }
Zoals getoond, wordt h1 herkend als zowel een Hond als een Dier, wat Java's erfenismodel weerspiegelt.
instanceof gebruiken met interfaces
instanceof controleert ook of een object een bepaalde interface implementeert.
interface Dier { } class Hond implements Dier { } class Main { public static void main(String[] args) { Hond h1 = new Hond(); System.out.println(h1 instanceof Dier); // true } }
Hier is h1 een Hond die Dier implementeert, dus de operator retourneert true.
Let op: Elke Java-klasseextends uiteindelijk java.lang.Object. Daarom is elk object ook een instantie van Object. Bijvoorbeeld:
h1 instanceof Object
Dit zal altijd evalueren naar true.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java-erfenis meesteren: concepten, typen en praktische voorbeelden
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ArrayList meesteren: operaties, methoden en best practices
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
- Java 9: Anonieme inner classes vereenvoudigen met de Diamond Operator