Java instanceof işleci, nesnenin belirtilen türde (sınıf veya alt sınıf veya arabirim) bir örneği olup olmadığını sınamak için kullanılır.
comparison operatorJava'daki instanceof, örneği türle karşılaştırdığı için tür olarak da bilinir . Ya trueda döner false. instanceofİşleci nulldeğeri olan herhangi bir değişkenle uygularsak,false .
JEP 305 içeren JDK 14+ sürümünden ayrıca "Pattern Matching"instanceof
Desenler temel olarak bir değerin belirli bir türe sahip olduğunu test eder ve eşleşen tipe sahip olduğunda değerden bilgi çıkarabilir. Örüntü eşleme, bir sistemdeki ortak mantığın, bileşenlerin nesnelerden koşullu olarak kaldırılması konusunda daha açık ve etkili bir şekilde ifade edilmesini sağlar.
Java öncesi 14
if (obj instanceof String) {
String str = (String) obj; // need to declare and cast again the object
.. str.contains(..) ..
}else{
str = ....
}
Java 14 geliştirmeleri
if (!(obj instanceof String str)) {
.. str.contains(..) .. // no need to declare str object again with casting
} else {
.. str....
}
Ayrıca tip kontrolü ve diğer koşulları bir araya getirebiliriz
if (obj instanceof String str && str.length() > 4) {.. str.contains(..) ..}
Kalıp eşleşmesinin kullanılması, instanceofJava programlarındaki genel açık döküm sayısını azaltmalıdır.
PS : instanceOfyalnızca nesne boş olmadığında eşleşir, ancak yalnızca atanabilir str.