I am using the Java version of the Google App Engine.
I would like to create a function that can receive as parameters many types of objects. I would like to print out the member variables of the object. Each object(s) may be different and the function must work for all objects. Do I have to use reflection? If so, what kind of code do I need to write?
public class dataOrganization { private String name; private String contact; private PostalAddress address; public dataOrganization(){} } public int getObject(Object obj){ // This function prints out the name of every // member of the object, the type and the value // In this example, it would print out "name - String - null", // "contact - String - null" and "address - PostalAddress - null" }
How would I write the function getObject?
Example 2: Iterate through Set using iterator() We have used the iterator() method to iterate over the set. Here, hasNext() - returns true if there is next element in the set. next() - returns the next element of the set.
The best way to iterate the list in terms of performance would be to use iterators ( your second approach using foreach ).
Yes, you do need reflection. It would go something like this:
public static void getObject(Object obj) { for (Field field : obj.getClass().getDeclaredFields()) { //field.setAccessible(true); // if you want to modify private fields System.out.println(field.getName() + " - " + field.getType() + " - " + field.get(obj)); } }
(As pointed out by ceving, the method should now be declared as void
since it does not return anything, and as static
since it does not use any instance variables or methods.)
See the reflection tutorial for more.
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