public class UserBean {
04. private Integer id;
05. private int age;
06. private String name;
07. private String address;
08.
09. public UserBean(){
10. System.out.println("实例化");
11. }
12.
13. public Integer getId() {
14. return id;
15. }
16. public void setId(Integer id) {
17. this.id = id;
18. }
19. public int getAge() {
20. return age;
21. }
22. public void setAge(int age) {
23. this.age = age;
24. }
25. public String getName() {
26. return name;
27. }
28. public void setName(String name) {
29. this.name = name;
30. }
31. public String getAddress() {
32. return address;
33. }
34. public void setAddress(String address) {
35. this.address = address;
36. }
37.
38.
39.
40.}
41.
42.2 > 反射测试
43.
44.package com.whbs.test;
45.
46.import java.lang.reflect.Field;
47.import java.lang.reflect.Method;
48.
49.import com.whbs.bean.UserBean;
50.
51.public class Test1 {
52.
53. public static void main(String[] args) throws Exception {
54.
55.
56. /*
57. * 实列化类 方法1
58. */
59. //String classPath = "com.whbs.bean.UserBean";
60. //Class cla = Test1.class.getClassLoader().loadClass(classPath);
61. //Object ob = cla.newInstance();
62.
63. /*
64. * 实列化类 方法2
65. */
66. UserBean bean = new UserBean();
67. bean.setId(100);
68. bean.setAddress("武汉");
69.
70. //得到类对象
71. Class userCla = (Class) bean.getClass();
72.
73. /*
74. * 得到类中的所有属性集合
75. */
76. Field[] fs = userCla.getDeclaredFields();
77. for(int i = 0 ; i < fs.length; i++){
78. Field f = fs[i];
79. f.setAccessible(true); //设置些属性是可以访问的
80. Object val = f.get(bean);//得到此属性的值
81.
82. System.out.println("name:"+f.getName()+"\t value = "+val);
83.
84. String type = f.getType().toString();//得到此属性的类型
85. if (type.endsWith("String")) {
86. System.out.println(f.getType()+"\t是String");
87. f.set(bean,"12") ; //给属性设值
88. }else if(type.endsWith("int") || type.endsWith("Integer")){
89. System.out.println(f.getType()+"\t是int");
90. f.set(bean,12) ; //给属性设值
91. }else{
92. System.out.println(f.getType()+"\t");
93. }
94.
95. }
96.
97.
98. /*
99. * 得到类中的方法
100. */
101. Method[] methods = userCla.getMethods();
102. for(int i = 0; i < methods.length; i++){
103. Method method = methods[i];
104. if(method.getName().startsWith("get")){
105. System.out.print("methodName:"+method.getName()+"\t");
106. System.out.println("value:"+method.invoke(bean));//得到get 方法的值
107. }
108. }
109. }
110.
111.}
分享到:
相关推荐
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...
总结,Java反射机制为我们提供了强大的动态性,能够方便地获取和操作类的属性和方法,包括私有成员和子类父类中的成员。通过熟练掌握反射技术,开发者可以实现更灵活、更动态的代码,但也需要谨慎使用,以避免潜在的...
在Java编程语言中,反射(Reflection)是一种...通过阅读和分析这个文件,你可以更深入地理解如何利用反射来获取和设置私有属性的值。在实际学习中,你可以尝试运行这个程序,观察其输出,以便更好地掌握反射的用法。
总结起来,Java反射为我们提供了在运行时操作类、方法和属性的强大工具,包括调用私有方法和获取私有属性值。然而,它也是一把双刃剑,使用时需权衡利弊,确保代码的稳定性和安全性。在处理私有成员时,务必注意对...
### Java反射操作父类所有属性和方法 #### 一、引言 在Java编程语言中,反射(Reflection)是一项强大的特性,它允许程序在运行时动态地获取类的信息,并能够直接操作这些信息。通过反射,我们可以获取类的字段、...
- **访问和修改属性值**:使用`Field`的`get(Object obj)`和`set(Object obj, Object value)`方法可以读取和设置Bean实例的属性值。 - **遍历getter和setter**:`Class.getMethod(String name, Class<?>... ...
在这篇文章中,我们将通过一个实用的例子来展示如何使用Java反射机制来获取对象的属性和值。 在Java中,反射机制是通过java.lang.reflect包中的类和接口来实现的。其中,Class类是反射机制的核心,通过它可以获取类...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...
通过上述示例,我们可以看到如何利用Java反射机制获取一个类中的所有属性及其对应的值。这种方法非常适用于动态配置或解析对象的场景。需要注意的是,虽然反射提供了强大的功能,但它也存在一定的性能开销,因此在...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...
下面小编就为大家带来一篇Java通过反射机制动态设置对象属性值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
利用反射获取实例化类的属性值和属性值!很实用,直接复制到控制台就行了!
Java反射是Java编程语言中的一个强大工具,它...总结起来,Java反射允许我们在运行时检查和操作代码,包括修改注解的属性值,但这需要谨慎使用。同时,了解Web开发中的会话管理和函数式接口是提升Java编程能力的关键。
总之,Java反射机制为开发者提供了极大的灵活性,能够在运行时探索和操作类的内部细节,从而实现高度动态的程序设计。然而,过度使用反射可能会降低代码可读性和性能,因此应当权衡利弊,合理运用。
java反射获取一个object属性值代码解析 java反射获取一个object属性值代码解析是java编程中一个非常重要的知识点,通过反射机制,可以动态地获取一个object的属性值,无需提前知道该对象的类型。下面将详细介绍java...
同时,由于`getPropertyName`方法内部的逻辑,`UserName`属性的值已被设置为"测试"。 总结来说,反射机制在.NET中提供了动态访问类、属性、方法等功能的能力。在本例中,我们利用`Type`类的`GetProperties`方法获取...
首先,Java反射是Java语言的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,甚至可以动态地调用方法和修改字段值。在Map到Bean的转换中,反射用于动态地创建Bean实例并设置其属性值。这需要使用`...
总结一下,Java反射机制为我们提供了在运行时检查和操作类、方法的能力。通过`Class.forName()`获取Class对象,再利用`getMethod()`获取方法,最后使用`invoke()`执行方法。在实际开发中,理解并谨慎使用反射,能够...
在web开发中,经常遇到修改的操作。而使用hibernate,它的修改是基于对象的,如果用户修改的字段非常多,但是我们并不知道用户到底修改了那个字段,这时候就需要一个一个的去判断,因此非常耗时,所以我写了个工具类...