我有带字段的类型对象,我想在上面获取特定字段的值,我应该如何在 java 中做到这一点?
在这里,我获取与实体实例相关的字段 id 的特定字段类型,现在我想获取此特定字段“id”的值(如 1、2、3 等)。
for (Object entityInstance : fromEntityInstances) {
try {
Field declaredField = entityObj.getDeclaredField("id");
我有带字段的类型对象,我想在上面获取特定字段的值,我应该如何在 java 中做到这一点?
在这里,我获取与实体实例相关的字段 id 的特定字段类型,现在我想获取此特定字段“id”的值(如 1、2、3 等)。
for (Object entityInstance : fromEntityInstances) {
try {
Field declaredField = entityObj.getDeclaredField("id");
我想你正在寻找Field.get
:
Object value = declaredField.get(entityInstance);
如果您知道它的类型,则可以进行投射。对于原语,有具体的方法,比如Field.getInt()
int id = declaredField.getInt(entityInstance);
一旦获得声明的字段,就可以调用它的get
方法,如下所示:
// Don't forget getType() here ---vvv
Field declaredField = entityObj.getType().getDeclaredField("id");
Object res = declaredField.get(entityInstance);
如果所有对象都属于同一类型,则可以将调用移到getDeclaredField
循环外以节省一些 CPU 周期。