Java Annotations

Every object should has toString() defined. (And you can override this for each class to get a more meaningful representation).

So you where your "// here I don't know" comment is, you could have:

Object value = field.get(table);
// gets the value of this field for the instance 'table'

log += "value: " + value + "\n";
// implicitly uses toString for you
// or will put 'null' if the object is null

Reflection is exactly the way to solve it. Finding out things about types and their members at execution time is pretty much the definition of reflection! The way you've done it looks fine to me.

To find the value of the field, use field.get(table)