は、ユーティリティメソッドを定義します。
public static Map<Class<?>, List<Field>> getFieldsByType(Field[] fields) {
Map<Class<?>, List<Field>> result = new HashMap<Class<?>, List<Field>>();
for (Field field:fields) {
List<Field> fieldList = result.get(field.getType());
if (fieldList == null) {
fieldList = new ArrayList<Field>();
result.put(field.getType(), fieldList);
}
fieldList.add(field);
}
return result;
}
それは種類によってフィールドを分離し、マップに格納します。
使用例:
Map<Class<?>, List<Field>> map = getFieldsByType(MyClass.class.getDeclaredFields());
List<Field> stringTypeMembers = map.get(String.class);
は今stringTypeMember
タイプString
であるすべてのクラスメンバー(フィールド)が含まれています。
@Andreas_D .....助けてくれてありがとう。私は質問で与えたサンプル変数でこの関数を使用するのを助けてくれるでしょう – rcky
@ Andreas_D..thanks – rcky