有一种方法:
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个字符。
如果是,它将这些字段放在List的结尾处并返回List。
我认为可以通过反思完成,但不确定如何。
答案 0 :(得分:0)
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;
会做你想做的事情,它需要声明的字段检查以查看它的String实例是否是,它检查长度是否大于10然后将该字段添加到链表。
代码未经测试,并且即时编写