instanceof
từ khóa là một toán tử nhị phân được sử dụng để kiểm tra nếu một đối tượng (thể hiện) là một kiểu con của Loại đã cho.
Hãy tưởng tượng:
interface Domestic {}
class Animal {}
class Dog extends Animal implements Domestic {}
class Cat extends Animal implements Domestic {}
Hãy tưởng tượng một dog
đối tượng , được tạo bằng Object dog = new Dog()
, sau đó:
dog instanceof Domestic // true - Dog implements Domestic
dog instanceof Animal // true - Dog extends Animal
dog instanceof Dog // true - Dog is Dog
dog instanceof Object // true - Object is the parent type of all objects
Tuy nhiên, với Object animal = new Animal();
,
animal instanceof Dog // false
bởi vì Animal
là một siêu kiểu Dog
và có thể ít "tinh chế" hơn.
Và,
dog instanceof Cat // does not even compile!
Đây là vì Dog
không phải là một kiểu con cũng không phải là siêu kiểu Cat
, và nó cũng không thực hiện nó.
Lưu ý rằng biến được sử dụng dog
ở trên là loại Object
. Điều này là để hiển thị instanceof
là một hoạt động thời gian chạy và đưa chúng ta đến một / trường hợp sử dụng: để phản ứng khác nhau dựa trên một loại đối tượng trong thời gian chạy .
Điều cần lưu ý: expressionThatIsNull instanceof T
là sai cho tất cả các loại T
.
Chúc mừng mã hóa.