Okan Uzun
Okan Uzun Administrator of The Coders, J2EE, Spring Developer | Functional Programming Enthusiast

Java instanceof kullanımı


Merhaba arkadaşlar. Bu yazımda Java projelerimizde sık bir şekilde kullandığımız instanceof operatöründen bahsedeceğim.

Java instanceof operatörü herhangi bir nesnenin belirtilen türe ait olup, olmadığını öğrenmek için kullanılır. Bu operatör aynı zamanda tip karşılaştırmak için de kullanılır ve Boolean tipinde true yada false  değerini döner. Bu operatör null bir değişkene uygulandığında false değerini dönmekle yükümlüdür.

Şimdi basit bir örnek yapalım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.io.Serializable;

public class Car implements Serializable {

  private String brand;

  private String model;

  Car(final String brand, final String model) {
    this.brand = brand;
    this.model = model;
  }

  public String getBrand() {
    return brand;
  }

  public void setBrand(final String brand) {
    this.brand = brand;
  }

  public String getModel() {
    return model;
  }

  public void setModel(final String model) {
    this.model = model;
  }
}

public class MainClass {

  public static void main(String[] args) {
    Car car = new Car();
    System.out.println(car instanceof Car);
  }
}
1
Output : true

Yukarıda kod bloğunda gördüğünüz üzere Car sınıfından bir nesne yarattık ve bu nesnenin Car sınıfına ait olup, olmadığını ekrana yazdırdık ve sonuç olarak bize true değerini döndürdü.

Alt sınıf nesnesinin türü de aynı zamanda bağlı olduğu üst sınıfının türüyle aynıdır. Yani Car sınıfımızın bir alt sınıfı olarak Opel sınıfı olsun. Opel sınıfından bir nesne yaratıp, bu nesnenin Car sınıfına ait olup olmadığını sorgularsak sonuç olarak bize true dönecektir.

Şimdi bunla ilgili bir örnek yapalım.

1
2
3
4
5
6
7
8
9
10
11
public class Opel extends Car {

}

public class MainClass {

  public static void main(String[] args) {
    final Opel opel = new Opel();
    System.out.println(opel instanceof Car);
  }
}
1
Output : true

Yazının başında da bahsettiğim gibi instanceof operatörünü null bir değişkene uygularsak sonuç olarak bize false döner.

1
2
3
4
5
6
7
public class MainClass {

  public static void main(String[] args) {
    final Opel opel = null;
    System.out.println(opel instanceof Opel);
  }
}
1
Output : false

Lütfen yorumlarınızı esirgemeyin. Bir dahaki yazımda görüşmek üzere, hoşçakalın :)

comments powered by Disqus