Javaでクラスのフィールドを取得設定するFieldクラスの使い方
Javaでクラスのフィールドを取得設定するFieldクラスの使い方です。
SampleDtoというDTOクラスがあるとします。
フィールドは以下です。
String name; BigDecimal age;
dto.getType()でそのフィールドの型を取得することができます。
dto.getType()がBigDecimalの場合、dto.getType().getSuperclass()で、BigDecimalのスーパークラスであるNumberを取得することができます。
DTOのそれぞれのプロパティは以下のように取得することができます。
for (Field field : dto.getClass.getDeclaredFields()) {
}
以下、Fieldクラスの使い方です。
package jp.confrage;
import java.lang.reflect.Field;
import java.math.BigDecimal;
public class Test1{
public static void main(String[] args) {
SampleDto dto = new SampleDto();
dto.setName("Yamada");
dto.setAge(BigDecimal.TEN);
for (Field field : dto.getClass().getDeclaredFields()) {
field.setAccessible(true);
System.out.println(field.getName());
try {
System.out.println(field.get(dto));
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(field.getType());
}
}
}
結果は以下のようになります。
name Yamada class java.lang.String age 10 class java.math.BigDecimal

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント