我有一个包含许多Label,String和int字段的类。在一个方法里面我只想循环遍历所有Label。 课程样本如下:
public class Human{
Label lbl1;
Label lbl2;
Label lbl3;
String str1;
int i1;
public void loadLbl(){
//load all Label only
}
}
以下是我现在使用的代码,但无法获得正确的语法来获取字段。 此代码将在loadLbl()中运行。
Field[] fields=Human.class.getDeclaredFields(); // get all declared fields
for(Field field:fields){
if(field.getType().equals(Label.class)){ // if it is a String field
field.setAccessible(true);
//work here
}
}
答案 0 :(得分:1)
您可以从 Human.class 更改为参考对象,例如 new Human(),它应该有效。
如下所示:
Field[] fields=new Human().getClass().getDeclaredFields();
已编辑:
或者不要在代码中使用其他方法 getClass()。
如下所示:
Field[] fields=Human.class.getDeclaredFields();
答案 1 :(得分:0)
Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
答案 2 :(得分:0)
我认为Raju Sharma的答案是正确的,或者你的问题可能不够明确。完整的功能就是这样。
sum