クラスのメンバー変数がリストにあるかどうかを確認する必要があります。このために、クラスのすべての変数を動的に取得する必要があります (可能な場合はリストとして)。Javaでそのための方法はありますか?
ありがとう、
KD
クラスのメンバー変数がリストにあるかどうかを確認する必要があります。このために、クラスのすべての変数を動的に取得する必要があります (可能な場合はリストとして)。Javaでそのための方法はありますか?
ありがとう、
KD
ほとんどの回答はClass.getFields()を推奨していますが、JavaDoc が述べているように、パブリック フィールドのみを返します。
この Class オブジェクトによって表されるクラスまたはインターフェイスのすべてのアクセス可能なパブリック フィールドを反映する Field オブジェクトを含む配列を返します。
クラス フィールドを public にすることはめったになく、getter と setter を使用して private にします。すべてのフィールド (private、protected、package private を含む) のリストを取得するには、 Class.getDeclaredFields()を使用する必要があります。
この Class オブジェクトによって表されるクラスまたはインターフェイスによって宣言されたすべてのフィールドを反映する Field オブジェクトの配列を返します。これには、パブリック、保護、デフォルト (パッケージ) アクセス、およびプライベート フィールドが含まれますが、継承されたフィールドは除外されます。
Class.getFields() とは異なり、Class.getDeclaredFields() は継承されたフィールドを返さないことに注意してください。それらを取得するには、クラス階層をループする必要があります (Object.class に到達するまで Class.getSuperclass() をループします)。プライベート フィールド名は、親クラスで繰り返される可能性があります。