`

Java反射得到属性的值和设置属性的值 .

    博客分类:
  • java
 
阅读更多
 
  1. package com.whbs.bean;  
  2.    
  3. public class UserBean {  
  4.     private Integer id;  
  5.     private int age;  
  6.     private String name;  
  7.     private String address;  
  8.      
  9.     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集合类

    这些`Field`对象提供了设置和获取字段值的能力,通过`set()`和`get()`方法。 ```java Class&lt;?&gt; clazz = Class.forName("com.example.YourClass"); Field[] fields = clazz.getDeclaredFields(); for (Field ...

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

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

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

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

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

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

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

    通过上述示例,我们了解了如何使用Java反射机制来获取父类的所有属性和方法。这种方法非常灵活,适用于许多不同的场景,如框架开发、测试工具等。需要注意的是,虽然反射功能强大,但在生产环境中应谨慎使用,因为它...

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

    这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...

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

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

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

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

    java反射........

    `Field.get()`和`Field.set()`分别用于读取和设置字段值。 5. **Annotations(注解)处理**:反射还可以用来读取类、方法、字段上的注解,这在处理元数据或实现AOP(面向切面编程)时非常有用。 6. **动态代理**:...

    用反射的方式获取父类中的所有属性和方法

    5. 动态调用方法和设置/获取属性值: 一旦我们有了`Method`或`Field`对象,就可以在运行时动态地调用方法或设置/获取属性值: ```java Object obj = ...; // 父类实例 method.invoke(obj, parameters); // 调用...

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

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

    反射获取属性调用方法反射获取属性调用方法

    反射获取属性和调用方法是其核心功能,广泛应用于框架设计、动态代理、插件机制等领域。下面将详细解释这两个概念。 1. 反射获取属性: 在Java中,`java.lang.reflect`包提供了`Class`类来获取类的信息,包括其...

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

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

    java反射.pdf

    - 之后可以通过`getField().get(obj)`获取属性值,或者通过`getField().set(obj, value)`设置属性值。 ```java Field field = clazz.getDeclaredField("myPrivateField"); field.setAccessible(true); String ...

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

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

    Java方法反射调用demo

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

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

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

    java反射获取参数.zip

    4. 获取和设置属性值: - 获取属性值:`Object value = field.get(obj);` - 设置属性值:`field.set(obj, newValue);` 5. 调用方法: - `Object result = method.invoke(obj, args);`调用无参方法。 - 对于带...

    通过Java反射机制获取JavaBean对象

    1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息

    反射实例-JAVA反射机制.doc

    Java 反射机制是 Java 语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。这种能力使得 Java 应用程序更加灵活,能够在运行时发现和修改自身的行为。然而,反射...

Global site tag (gtag.js) - Google Analytics