1. ホーム
  2. java

[解決済み] instanceofとClass.isAssignableFrom(...)の違いは何ですか?

2022-03-21 03:47:32

質問

次のうち、どちらが良いですか?

a instanceof B

または

B.class.isAssignableFrom(a.getClass())

私が知っている唯一の違いは、'a' が NULL の場合、最初のものは false を返し、2番目は例外を投げるということです。それ以外は、常に同じ結果になるのでしょうか?

どのように解決するのですか?

を使用する場合 instanceof のクラスを知る必要があります。 B をコンパイル時に指定します。 を使用する場合 isAssignableFrom() は動的で、実行時に変更することができます。