我有一个声明要保存信息的类.让我们说它有这些领域
class data {
int a;
int b;
int c;
}
Run Code Online (Sandbox Code Playgroud)
我想要像这样访问这些字段:
String [] fields = {"a", "b", "c"};
data da = new data();
for (int i = 0; i < 3; i++)
if (da.fields[i] < 10)
dosomething();
Run Code Online (Sandbox Code Playgroud)
Java中有没有办法做到这一点?谷歌搜索,我得到了一些关于"反射"的结果,但我从来没有真正听说过,我认为这不是我想要的.有没有办法在Java中这样做?如果没有,是否有任何语言支持这种事情(只是出于好奇)?
反思可能就是你所需要的.但是你需要更多的是仔细研究你的设计.你应尽可能避免反思.
如果您仍然对此感兴趣,请查看Java Reflection:Fields.
Field field = aClass.getField("someField");
Run Code Online (Sandbox Code Playgroud)
你会做什么来获得该名称的字段.你想要的更详细的例子.
Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
Run Code Online (Sandbox Code Playgroud)