获取类型对象的值

时间:2013-03-27 17:07:53

标签: java oop reflection

我有字段的类型对象,我想获取特定字段的值, 我该怎么做在java?

这里我获得了与entityinstance相关的字段id的特定字段类型 现在我想得到这个特定字段“id”的(如1,2,3等)。

for (Object entityInstance : fromEntityInstances) {

    try {
        Field declaredField = entityObj.getDeclaredField("id");

2 个答案:

答案 0 :(得分:4)

你正在寻找Field.get

Object value = declaredField.get(entityInstance);

如果您知道它的类型,则可以进行投射。对于基元,有一些特定的方法,例如Field.getInt()

int id = declaredField.getInt(entityInstance);

答案 1 :(得分:3)

获得声明字段后,可以调用其get方法,如下所示:

// Don't forget getType() here ---vvv
Field declaredField = entityObj.getType().getDeclaredField("id");
Object res = declaredField.get(entityInstance);

如果所有对象的类型相同,则可以将getDeclaredField的调用移到循环外部以节省一些CPU周期。