如何从Java反射中获取字符串字段的值?

如何从Java反射中获取字符串字段的值?,java,reflection,Java,Reflection,我有一个对象,它有一个字符串字段。我可以通过以下方式获取此字段: Field field = someObj.getClass().getField("strField"); 我设置了一个Field#set(Object)方法,用于设置这个实例的字段的值,但是相应的getter似乎是Field#get(Object),这很奇怪,因为我本来希望它是Field#get() 如何获取实例的strField的值?最简单的方法是使用: 请注意,BeanUtils将尝试将您的属性转换为字符串。如果使用的是

我有一个对象,它有一个字符串字段。我可以通过以下方式获取此字段:

Field field = someObj.getClass().getField("strField");
我设置了一个
Field#set(Object)
方法,用于设置这个实例的字段的值,但是相应的getter似乎是
Field#get(Object)
,这很奇怪,因为我本来希望它是
Field#get()

如何获取实例的strField的值?

最简单的方法是使用:


请注意,BeanUtils将尝试将您的属性转换为字符串。如果使用的是
java.lang.reflect.Field
,“setter”是
Field.set(Object,Object)
,“getter”是
Field.get(Object)
,则需要有属性的getter和setter。在这两种情况下,第一个参数都是要访问字段的实例。

即使没有属性的getter或setter方法,也可以使用对象引用和Java反射更改或获取值

import java.lang.reflect.Field;

public class Bean {

    private String strField;

    public static void main(String[] args) throws Exception {
        Bean bean = new Bean();
        Field field = bean.getClass().getDeclaredField("strField");
        field.set(bean, "Hello");
        System.out.println(field.get(bean));
    }

}

哦,他可能真的在谈论
java.lang.reflect.Field
。接得好@acdcjunior问题被标记为
reflection
标记,所以
java.lang.reflect
是首先想到的(至少对我来说是D)。你的另一个猜测是什么?@Pshemo是的,我大脑放屁了。我认为
Field
someObj
的类,而
Field的设置程序。strField
Field.set(Object)
Field.get(Object)
。他写的
Field#set(Object)
(而不是
set(Obj,Obj)
)让我完全误解了这个问题。
import java.lang.reflect.Field;

public class Bean {

    private String strField;

    public static void main(String[] args) throws Exception {
        Bean bean = new Bean();
        Field field = bean.getClass().getDeclaredField("strField");
        field.set(bean, "Hello");
        System.out.println(field.get(bean));
    }

}