gpt4 book ai didi

java - 有没有办法在给定字段名的情况下获取对象中某个字段的值?

转载 作者:行者123 更新时间:2023-11-29 03:55:06 25 4
gpt4 key购买 nike

简而言之,我想做类似的事情

MyObject myObject;

public String getField (String fieldName) {
return myObject.fieldName; // how could I do this since fieldName is a String?
}

背景:

我正在使用存储过程从数据库中获取数据。

存储过程基本上获取了所有的列。但我希望用户选择要在表格中显示的列。

在 Hibernate 对象中,我拥有与存储过程返回的结果集对应的所有字段。

有了用户想要的字段列表(Strings),有没有办法在给定字段名的情况下,在Hibernate对象中显示相应字段的值?

最佳答案

您可以使用反射访问它:

public static Object getField(Object target, String fieldName) throws Exception {
return target.getClass().getDeclaredField(fieldName).get(target);
}

在您的情况下,您只需使用:

myObject.getClass().getDeclaredField(fieldName).get(myObject);

下面是代码的一个小测试:

static class A {
int x = 1;
}

public static void main(String[] args) throws Exception {
System.out.println(getField(new A(), "x"));
}

输出:

1

关于java - 有没有办法在给定字段名的情况下获取对象中某个字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6854830/

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