java怎么根据属性名获取属性值

2023-08-28 4008阅读 0评论

在 Java 中,可以使用反射来根据属性名获取属性值。下面是一个示例代码:
```java
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person("张三", 20);
// 获取属性值
String name = getPropertyValue(person, "name");
int age = getPropertyValue(person, "age");
// 打印属性值
System.out.println("name: " + name);
System.out.println("age: " + age);
}
private static T getPropertyValue(Object obj, String propertyName) {
try {
// 获取属性
Field field = obj.getClass().getDeclaredField(propertyName);
// 设置可访问性,避免 private 属性访问权限限制
field.setAccessible(true);
// 获取属性值
T value = (T) field.get(obj);
// 返回属性值
return value;
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
// 如果发生异常,则返回 null
return null;
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
```
输出结果:
```
name: 张三
age: 20
```
在上述示例中,使用了泛型方法 `getPropertyValue()`,该方法通过反射获取到指定对象的属性,并返回属性值。在获取属性之前,需要通过 `setAccessible(true)` 方法设置属性的可访问性,以便可以访问到 private 属性。

java怎么根据属性名获取属性值 第1张


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,4008人围观)

还没有评论,来说两句吧...

目录[+]