Java反射检查字符串字段的长度



有一个方法:

    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,然后将字段添加到一个链表。

代码未经测试,直接编写

相关内容

  • 没有找到相关文章