JAVA的instanceOf什么时候用
生活随笔
收集整理的這篇文章主要介紹了
JAVA的instanceOf什么时候用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我個(gè)人理解的一個(gè)應(yīng)用場(chǎng)合就是,當(dāng)你拿到一個(gè)對(duì)象的引用時(shí)(例如參數(shù)),你可能需要判斷這個(gè)引用真正指向的類。所以你需要從該類繼承樹(shù)的最底層開(kāi)始,使用instanceof操作符判斷,第一個(gè)結(jié)果為true的類即為引用真正指向的類。
例如下面的例子:
class Person{} class Student extends Person{}class Postgraduate extends Student{} class Animal{} public class InstanceofTester { public static void main(String[] args){instanceofTest(new Student()); }public static void instanceofTest(Person p) {// 判斷p的真正類型 if (p instanceof Postgraduate) { System.out.println("p是類Postgraduate的實(shí)例"); }else if(p instanceof Student) {System.out.println("p是類Student的實(shí)例"); }else if(p instanceof Person) {System.out.println("p是類Person的實(shí)例"); }else if(p instanceof Object) {System.out.println("p是類Object的實(shí)例"); }/*if(p instanceof Animal) { //此錯(cuò)編譯錯(cuò)誤,所以做注釋 System.out.println("p是類Animal的實(shí)例"); }*/ } }
?
這個(gè)程序的輸出結(jié)果是:p是類Student的實(shí)例
Person類所在的繼承樹(shù)是:Object<--Person<--Student<--Postgraduate。
這個(gè)例子中還加入一個(gè)Animal類,它不是在Person類的繼承樹(shù)中,所以不能作為instanceof的右操作數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/fangchongyan/p/5044188.html
總結(jié)
以上是生活随笔為你收集整理的JAVA的instanceOf什么时候用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用python的numpy作线性拟合、多
- 下一篇: PHP Multipart/form-d