1. ホーム
  2. java

[解決済み] javaのgetType()とgetClass()の違いは何ですか?

2022-02-09 17:24:20

質問内容

以前は getType() はc#で使われていましたが、Javaにもあるんですね。

を使用する必要があります。 getType()getClass() ?

解決方法は?

のドキュメントによると 取得クラス 取得タイプ :

getClass は、このオブジェクトのランタイムクラスを表すClassオブジェクトを返します。

getType は、このオブジェクトによって表されるフィールドの宣言された型を識別するクラスオブジェクトを返します。

主な違いは someObject.getClass() のクラスオブジェクトが渡されます。 ランタイム の型があります。 someObject であり、かつ someField.getType() のクラスオブジェクトが得られます。 宣言された というフィールドの型は someField を参照する。

(呼び出し someField.getClass() を返します。 Field.class を参照しているからです。 Field オブジェクトそのものであり、参照するフィールドではありません)。

また getClass はすべてのオブジェクトで利用可能です。 getType のみが利用可能です。 Field オブジェクトはReflection APIの一部です。