package test;
import java.lang.reflect.Field;
interface IEntity{
}
class Entity implements IEntity{
private String s1 = "字符串1";
private String s2 = "字符串2";
}
public class Test {
public static void reflect(IEntity e) throws Exception{
Class cls = e.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i=0; i<fields.length; i++){
Field f = fields[i];
f.setAccessible(true);
System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(e));
}
}
public static void main(String[] args) throws Exception{
IEntity e = new Entity();
reflect(e);
}
}
如果f.get(e) 是自定义类型 可以先对f.getName()做判断 然后 强转类型
如下:
if(f.getName().equals("identifier")){
Identifier ee=(Identifier)f.get(l);
value=ee.getRaw();
}