instanceof、isInstance、isAssignableFrom的区别
https://stackoverflow.com/questions/3949260/java-class-isinstance-vs-class-isassignablefrom
2.? =
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> doit()
{
A myA </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> A();
B myB </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> B();
A[] aArr </span>= <span style="color: #0000ff;">new</span> A[0<span style="color: #000000;">];
B[] bArr </span>= <span style="color: #0000ff;">new</span> B[0<span style="color: #000000;">];
System.out.println(</span>"b instanceof a: " + (myB <span style="color: #0000ff;">instanceof</span><span style="color: #000000;"> A));
System.out.println(</span>"b isInstance a: " + A.<span style="color: #0000ff;">class</span><span style="color: #000000;">.isInstance(myB));
System.out.println(</span>"a isInstance b: " + B.<span style="color: #0000ff;">class</span><span style="color: #000000;">.isInstance(myA));
System.out.println(</span>"b isAssignableFrom a: " + A.<span style="color: #0000ff;">class</span>.isAssignableFrom(B.<span style="color: #0000ff;">class</span><span style="color: #000000;">));
System.out.println(</span>"a isAssignableFrom b: " + B.<span style="color: #0000ff;">class</span>.isAssignableFrom(A.<span style="color: #0000ff;">class</span><span style="color: #000000;">));
System.out.println(</span>"bArr isInstance A: " + A.<span style="color: #0000ff;">class</span><span style="color: #000000;">.isInstance(bArr));
System.out.println(</span>"bArr isInstance aArr: " +<span style="color: #000000;"> aArr.getClass().isInstance(bArr));
System.out.println(</span>"bArr isAssignableFrom aArr: " +<span style="color: #000000;"> aArr.getClass().isAssignableFrom(bArr.getClass()));
}
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> A
{
}
</span><span style="color: #0000ff;">class</span> B <span style="color: #0000ff;">extends</span><span style="color: #000000;"> A
{
}
} 结果 b a:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |