java:Class.isInstance与Class.isAssignableFrom

让clazz一些Class和obj一些Object。



clazz.isAssignableFrom(obj.getClass())

总是和


clazz.isInstance(obj)


如果没有,有什么区别?


胡子哥哥
浏览 528回答 3
3回答

慕斯709654

clazz.isAssignableFrom(Foo.class)只要该clazz对象表示的类是的超类或超接口,它就为true Foo。clazz.isInstance(obj)只要对象obj是类的实例,它将为true clazz。那是:clazz.isAssignableFrom(obj.getClass()) == clazz.isInstance(obj)只要clazz并且obj为非null,就始终为真。

MM们

为简便起见,我们可以像下面这样理解这两个API:X.class.isAssignableFrom(Y.class)如果X和Y是相同的类,或者X是Y的超类或超接口,则返回true,否则返回false。X.class.isInstance(y)说y是class的实例Y,如果X和Y是相同的类,或者X是Y的超类或超接口,则返回true,否则返回false。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java