我是Java的初学者。请原谅我这个问题太愚蠢了。 我在变量comparisonEntity中从用户获取字符串输入。如果输入是" xyz"然后我必须根据这个属性比较所有实例。 (类中存在相同的名称属性)如果输入是" abc"然后我必须根据这个属性比较所有实例。 另外,我不想在if和else部分编写冗余代码。 所以有类似的东西 对象名" comparisonEntity" " comparisonEntity"将被相同值的属性名称替换。
答案 0 :(得分:0)
如果我理解你的问题,我认为你可以通过使用反射实现这一点。
所以你有一个类的实例,还有一个输入字符串:
Test instance = new Test();
String input = "nameOfSomeField";
您可以获得与输入的字符串对应的Field
:
try {
Field field = instance.getClass().getField(input);
} catch (NoSuchFieldException ex) {
// Field doesn't exist
}
然后你可以做一些事情,比如获得这样的领域的价值:
Object value = field.get(instance);
请注意,field.get()
会返回Object
。你需要施展它。