hmc*_*ake 3 java oracle reflection field
在这里查看Java文档,阅读Oracle教程,以及在SO上访问这个问题之后,我仍然对实际的Object论点感到茫然Field#get(Object obj).
我使用Reflection获取字段的过程是:
Field field = SomeClass.getClass().getDeclaredField("someField");
field.setAccessible(true);
Run Code Online (Sandbox Code Playgroud)
哪个给出了Field对象.现在,要获取该字段的实际值,您将使用该Field#get(Object obj)方法.此方法的文档说明了有关参数的以下内容.
obj - 从中提取所表示字段值的对象
我不知道参数的描述甚至意味着什么.有人可以向我解释这个论点真正要求的是什么吗?
谢谢.
假设你有一个班级Foo:
public class Foo {
public int bar;
}
Run Code Online (Sandbox Code Playgroud)
现在您可以拥有此类的多个实例:
Foo f1 = new Foo();
f1.bar = 1;
Foo f2 = new Foo();
f2.bar = 2;
Run Code Online (Sandbox Code Playgroud)
要获得字段的值bar的f1沉思,你会打电话
field.get(f1); // returns 1
Run Code Online (Sandbox Code Playgroud)
要获得字段的值bar的f2沉思,你会打电话
field.get(f2); // returns 2
Run Code Online (Sandbox Code Playgroud)