【发布时间】:2013-08-13 07:37:27
【问题描述】:
我有一个名为 MyClass 的课程。它有许多 MyField 类型的字段。如何返回对名称与字符串值匹配的特定字段的引用?
public class MyClass{
public MyField field1;
public MyField field2;
public MyField field3;
public MyField whichField(String nameOfField){
//e.g. String = "field3", then return field3
//of course I can do if else, but it will be tedious If I have long list of MyField fields, can I iterate over all field names, and return whose name matches?
}
}
编辑
我尝试从下面的答案中反思,我创建了一个临时占位符,我希望重新使用它,但是,
MyField temp = MyClass.class.getDeclaredField(whichFieldString);
不起作用,我得到类型不匹配,无法转换错误
我该如何施放这个? 如何返回此字段?
【问题讨论】:
-
你的意思是说你有
myFieldObject.getName()这样的东西? -
你可以用反射来做到这一点
-
您最好将字段放入集合并遍历它。
-
它应该是 Field 类型,而不是“MyField”...您应该为示例代码使用更正确的数据
标签: java