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 example if my class is:
public class ClassWithStuff { public int inty; public stringy; public Stuff; //many more fields }
In another location, I'd make a ClassWithStuff
object and I would like to go though all the fields in the class. Kind of like this:
for (int i = 0; i < ClassWithStuff.getFields().size(); i++) { //do stuff with each one }
Is there any way for me to achieve this?
Reflection is a feature in the Java programming language. It allows an executing Java program to examine or "introspect" upon itself, and manipulate internal properties of the program. For example, it's possible for a Java class to obtain the names of all its members and display them.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With