gpt4 book ai didi

java - 如何使用反射根据对象类型获取当前类的字段?

转载 作者:行者123 更新时间:2023-12-02 12:12:36 28 4
gpt4 key购买 nike

我有一个类,有许多 Label、String 和 int 字段。在方法内部,我只想循环遍历所有标签。类示例如下:

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
}
}

最佳答案

你可以从Human.class更改为像new Human()这样的引用对象,它应该可以工作。

如下所示:

Field[] fields=new Human().getClass().getDeclaredFields();

已编辑:

或者不要在代码中使用其他方法getClass()

如下所示:

 Field[] fields=Human.class.getDeclaredFields();

关于java - 如何使用反射根据对象类型获取当前类的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46422376/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com