有一个方法:
public List<Field> getAtLeastTenChar(Object o) {
List<Field> FieldList = new ArrayList<>();
Class c = o.getClass();
Field[] mezok = c.getFields();
for(int i=0; i<mezok.length; i++){
if(mezok[i].getType()==String){
if(mezok[i].length()>10){
FieldList.add(mezok[i])
}
}
}
}
如果o
有字符串字段,我想知道这些字符串长度是否达到10个字符。如果是,它将这些字段放在列表的末尾,并返回列表。我认为这可以通过反思来完成,但不确定怎么做。
Class<?> objClass = o.getClass();
Field[] fields = objClass.getDeclaredFields();
List<Field> fieldList = new LinkedList<Field>();
for(Field field : fields) {
field.setAccessible(true);
Object value = field.get(o);
if(value instanceof String)
if(((String) value).length() > 10){
fieldList.add(field);
}
}
}
return fieldList;
会做你想要的,它采取声明的字段检查,看看它的字符串实例,如果它是,它检查长度是否大于10,然后将字段添加到一个链表。
代码未经测试,直接编写