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

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

1.クラスSampleAの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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のフィールドを取得

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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());
}
}
}
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()); } } }
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