「Java」getClass().getDeclaredFields()でクラスのフィールドを取得するサンプル

書式
for (Field field : オブジェクト名.getClass().getDeclaredFields()) {
field.setAccessible(true);
//some code
使用例

1.クラスSampleAの定義

package com.akrgame.study.earn;

import java.math.BigDecimal;

public class SampleA {
      private String username;
      public int age;
      protected BigDecimal price;
      
      //コンストラクター
      public SampleA(String username, int gae, BigDecimal price) {
            this.username = username;
            this.price = price;
            this.age = age;
      }

}

2.クラスSampleAのフィールドを取得

package com.akrgame.study.earn;

import java.lang.reflect.Field;
import java.math.BigDecimal;

public class FieldInfoGet {

      public static void main(String[] args) {
            getField();
      }
      //関数getFieldの定義
      public static void getField() {
           //オブジェクトの宣言
            SampleA tt = new SampleA("user001", 35, new BigDecimal(35.68));
            for (Field field : tt.getClass().getDeclaredFields()) {
                  field.setAccessible(true);
                  System.out.println("フィールド名前:" + field.getName() + "\n" + "フィールドタイプ:" + field.getType());
            }

      }
}

実行結果
フィールド名前:username
フィールドタイプ:class java.lang.String
フィールド名前:age
フィールドタイプ:int
フィールド名前:price
フィールドタイプ:class java.math.BigDecimal

Java

Posted by arkgame