1. ホーム

[解決済み】java: Class.isInstance vs Class.isAssignableFrom

2022-04-02 12:20:58

質問

clazz ある Classobj ある Object .

です。

clazz.isAssignableFrom(obj.getClass())

と常に同じです。

clazz.isInstance(obj)

?

そうでない場合、どのような違いがあるのでしょうか?

解決方法は?

clazz.isAssignableFrom(Foo.class) で表されるクラスは常に真になります。 clazz オブジェクトのスーパークラスまたはスーパーインターフェイスです。 Foo .

clazz.isInstance(obj) は常に真になります。 obj のインスタンスです。 clazz .

ということです。

clazz.isAssignableFrom(obj.getClass()) == clazz.isInstance(obj)

が存在する限り、常に真となります。 clazzobj は非NULLである。