instanceof
Operator java digunakan untuk menguji apakah objek adalah turunan dari tipe yang ditentukan (kelas atau subkelas atau antarmuka).
Instanceof di java juga dikenal sebagai tipe comparison operator
karena membandingkan instance dengan type. Ia mengembalikan salah satu true
atau false
. Jika kami menerapkan instanceof
operator dengan variabel apa pun yang memiliki null
nilai, ia akan kembali false
.
Dari JDK 14+ yang termasuk JEP 305 kita juga dapat melakukan "Pencocokan Pola" untukinstanceof
Pola pada dasarnya menguji bahwa suatu nilai memiliki tipe tertentu, dan dapat mengekstraksi informasi dari nilai tersebut ketika memiliki tipe yang cocok. Pencocokan pola memungkinkan ekspresi yang lebih jelas dan efisien dari logika umum dalam suatu sistem, yaitu penghapusan komponen dari objek secara bersyarat.
Sebelum Jawa 14
if (obj instanceof String) {
String str = (String) obj; // need to declare and cast again the object
.. str.contains(..) ..
}else{
str = ....
}
Java 14 perangkat tambahan
if (!(obj instanceof String str)) {
.. str.contains(..) .. // no need to declare str object again with casting
} else {
.. str....
}
Kami juga dapat menggabungkan pemeriksaan tipe dan kondisi lainnya
if (obj instanceof String str && str.length() > 4) {.. str.contains(..) ..}
Penggunaan pencocokan pola instanceof
harus mengurangi jumlah keseluruhan gips eksplisit dalam program Java.
PS : instanceOf
hanya akan cocok ketika objek tidak nol, maka hanya itu yang dapat ditugaskan str
.