gpt4 book ai didi

java - getDeclaredField(String) 与 getMethod(String) 对于 bean 中的私有(private)字段

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:01 25 4
gpt4 key购买 nike

我有一个 bean,我想通过反射访问它的属性。我收到字符串形式的属性名称。这些 bean 具有用于其私有(private)字段的 getter 方法。

我目前正在使用 getDeclaredField(fieldName) 获取字段, 使其可通过使用 setAccessible(true) 访问然后使用 get 检索它的值.

另一种方法是将字段名称大写并添加 get到它的前面,然后从类中获取该名称的方法,最后调用该方法以获取私有(private)字段的值。

哪种方式更好?

编辑

也许我应该解释一下我所说的“更好”是什么意思……我所说的“更好”是指最佳实践。或者,如果有任何细微的警告或差异。

最佳答案

您可能想看一下 Introspector类,如果您只想处理已公开的属性,它是一个很好的包装器,您可以获得 BeanInfo对象,然后调用 getPropertyDescriptors() ,例如:

final BeanInfo info = Introspector.getBeanInfo(clazz);
for (PropertyDescriptor prop : info.getPropertyDescriptors()) {
final Method read = prop.getReadMethod();
if (read != null) {
// do something
}
}

关于java - getDeclaredField(String) 与 getMethod(String) 对于 bean 中的私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637521/

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