你可以尝试这样的,使用反射来检索每个实体对象声明的字段:
public class CastingTest {
public static void cast(Object o) throws IllegalArgumentException, IllegalAccessException{
Class<? extends Object> clazz = o.getClass();
//clazz.cast(o);
System.out.println(clazz.getName() + " >> " + clazz.getDeclaredFields().length);
for(Field f: clazz.getDeclaredFields()){
f.setAccessible(true);
System.out.println(f.getName() + "=" + f.get(o));
}
}
public static void main(String args[]) throws IllegalArgumentException, IllegalAccessException{
CastingTest.cast(new ClassA("A","B",1));
CastingTest.cast(new ClassB("A","B",2.25));
}
}
测试模型。 ClassA:
public class ClassA {
private String a;
private String b;
private int c;
/**
* @param a
* @param b
* @param c
*/
public ClassA(String a, String b, int c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
}
测试模型。 ClassB的:
public class ClassB {
private String varA;
private String varC;
private double value;
/**
* @param varA
* @param varC
* @param value
*/
public ClassB(String varA, String varC, double value) {
super();
this.varA = varA;
this.varC = varC;
this.value = value;
}
}
和输出:
com.test.ClassA >> 3
a=A
b=B
c=1
com.test.ClassB >> 3
varA=A
varC=B
value=2.25
你的意思是'铸造'。 – xenteros
这些字段是公开的吗? –
字段是私有的getter/setter – TheNewby