繁体   English   中英

获取不同类型的变量

[英]Getting different types of variable

我有一个Java形式,其中我声明了string类型的不同变量,而string数组类型的变量很少,而集合则很少。 使用反射api的getdeclaredfileds,我将在字段数组变量中获取类的每个字段。 但是我想将字符串变量分成一个公共数组。 将数组字符串放入其他数组,并将集合字段放入其他字段。

例如:- String abc; String def; String[] lmn; String[] opq; Collection mno; String abc; String def; String[] lmn; String[] opq; Collection mno;

定义实用程序方法:

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类型的所有类成员(字段)。

您能否获取所有变量并使用Field.getType()按类型过滤它们?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM