`

Java反射得到属性的值和设置属性的值 (转)

    博客分类:
  • Java
 
阅读更多
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反射,获取所有属性、方法以及List集合类

    Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...

    java反射获取所有属性,获取所有get方法,包括子类父类

    总结,Java反射机制为我们提供了强大的动态性,能够方便地获取和操作类的属性和方法,包括私有成员和子类父类中的成员。通过熟练掌握反射技术,开发者可以实现更灵活、更动态的代码,但也需要谨慎使用,以避免潜在的...

    java 反射取得类的私有属性,通过私有属性取得属性值

    在Java编程语言中,反射(Reflection)是一种...通过阅读和分析这个文件,你可以更深入地理解如何利用反射来获取和设置私有属性的值。在实际学习中,你可以尝试运行这个程序,观察其输出,以便更好地掌握反射的用法。

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    总结起来,Java反射为我们提供了在运行时操作类、方法和属性的强大工具,包括调用私有方法和获取私有属性值。然而,它也是一把双刃剑,使用时需权衡利弊,确保代码的稳定性和安全性。在处理私有成员时,务必注意对...

    java反射操作父类所有属性和方法

    ### Java反射操作父类所有属性和方法 #### 一、引言 在Java编程语言中,反射(Reflection)是一项强大的特性,它允许程序在运行时动态地获取类的信息,并能够直接操作这些信息。通过反射,我们可以获取类的字段、...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **访问和修改属性值**:使用`Field`的`get(Object obj)`和`set(Object obj, Object value)`方法可以读取和设置Bean实例的属性值。 - **遍历getter和setter**:`Class.getMethod(String name, Class&lt;?&gt;... ...

    Java利用反射获取object的属性和值代码示例

    在这篇文章中,我们将通过一个实用的例子来展示如何使用Java反射机制来获取对象的属性和值。 在Java中,反射机制是通过java.lang.reflect包中的类和接口来实现的。其中,Class类是反射机制的核心,通过它可以获取类...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...

    运用反射得到类中的属性和值

    通过上述示例,我们可以看到如何利用Java反射机制获取一个类中的所有属性及其对应的值。这种方法非常适用于动态配置或解析对象的场景。需要注意的是,虽然反射提供了强大的功能,但它也存在一定的性能开销,因此在...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    Java通过反射机制动态设置对象属性值的方法

    下面小编就为大家带来一篇Java通过反射机制动态设置对象属性值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    反射获取类属性名和属性值

    利用反射获取实例化类的属性值和属性值!很实用,直接复制到控制台就行了!

    Java反射动态修改注解的某个属性值.Java

    Java反射是Java编程语言中的一个强大工具,它...总结起来,Java反射允许我们在运行时检查和操作代码,包括修改注解的属性值,但这需要谨慎使用。同时,了解Web开发中的会话管理和函数式接口是提升Java编程能力的关键。

    java反射 java反射 java反射java反射

    总之,Java反射机制为开发者提供了极大的灵活性,能够在运行时探索和操作类的内部细节,从而实现高度动态的程序设计。然而,过度使用反射可能会降低代码可读性和性能,因此应当权衡利弊,合理运用。

    java反射获取一个object属性值代码解析

    java反射获取一个object属性值代码解析 java反射获取一个object属性值代码解析是java编程中一个非常重要的知识点,通过反射机制,可以动态地获取一个object的属性值,无需提前知道该对象的类型。下面将详细介绍java...

    利用反射机制动态获取对象属性名称及数据类型

    同时,由于`getPropertyName`方法内部的逻辑,`UserName`属性的值已被设置为"测试"。 总结来说,反射机制在.NET中提供了动态访问类、属性、方法等功能的能力。在本例中,我们利用`Type`类的`GetProperties`方法获取...

    java Map转换成bean,利用java反射以及java和bean包

    首先,Java反射是Java语言的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,甚至可以动态地调用方法和修改字段值。在Map到Bean的转换中,反射用于动态地创建Bean实例并设置其属性值。这需要使用`...

    java 反射得到某个方法

    总结一下,Java反射机制为我们提供了在运行时检查和操作类、方法的能力。通过`Class.forName()`获取Class对象,再利用`getMethod()`获取方法,最后使用`invoke()`执行方法。在实际开发中,理解并谨慎使用反射,能够...

    java 利用反射将同一种对象,不同属性值,合并为一个新的对象

    在web开发中,经常遇到修改的操作。而使用hibernate,它的修改是基于对象的,如果用户修改的字段非常多,但是我们并不知道用户到底修改了那个字段,这时候就需要一个一个的去判断,因此非常耗时,所以我写了个工具类...

Global site tag (gtag.js) - Google Analytics