Loop over all fields in a Java class

前端 未结 4 1831
猫巷女王i
猫巷女王i 2020-11-28 09:38

I have a Java class that has a number of Fields.

I would like to Loop over al lthe fields and do something for the one\'s that are null.

For ex

4条回答
  •  孤城傲影
    2020-11-28 09:59

    Use getDeclaredFields on [Class]

    ClasWithStuff myStuff = new ClassWithStuff();
    Field[] fields = myStuff.getClass().getDeclaredFields();
    for(Field f : fields){
       Class t = f.getType();
       Object v = f.get(myStuff);
       if(t == boolean.class && Boolean.FALSE.equals(v)) 
         // found default value
       else if(t.isPrimitive() && ((Number) v).doubleValue() == 0)
         // found default value
       else if(!t.isPrimitive() && v == null)
         // found default value
    }
    

    (http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html)

提交回复
热议问题