Java Reflection检查字符串字段长度

时间:2014-06-09 19:26:28

标签: java reflection

有一种方法:

    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。 我认为可以通过反思完成,但不确定如何。

1 个答案:

答案 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然后将该字段添加到链表。

代码未经测试,并且即时编写