美文网首页
JavaBean的属性用反射访问的基础知识

JavaBean的属性用反射访问的基础知识

作者: exmexm | 来源:发表于2017-10-21 17:22 被阅读0次
1、简单利用配置文件以及反射生成一个实体类:

配置 文件内容:

image.png

代码实现:

package com.winney.dayst;

import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Winney {

    public static void main(String[] args) {
        Properties pros = new Properties();
        try {
            pros.load(Winney.class.getResourceAsStream("classConfig.properties"));
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("加载配置文件失败!");
        }
        String className = pros.getProperty("className");
        try {
            Set<String> set = (Set) Class.forName(className).newInstance();
            set.add("winney");
            set.add("hello");
            System.out.println(set.toString());
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

}
2、利用通过javaBean的属性描述new一个propertyDescriptor,然后利用propertyDescriptor.getReadMethod或者propertyDescriptor.getWriteMethod获得setter和getter方法。

代码如下:

public class TestSetAGet {

    public static void main(String[] args)
            throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
        Person person = new Person("01", "person Wang");
        // 输出person的name属性 name->Name,getName->
        String propertyName = "Name";
        PropertyDescriptor pd = new PropertyDescriptor(propertyName, person.getClass());
        Method getMethod = pd.getReadMethod();
        String retVal = (String) getMethod.invoke(person, null);
        System.out.println(retVal);

        // 设置person的name setName
        Method setMethod = pd.getWriteMethod();
        retVal = (String) setMethod.invoke(person, "person LI");
        System.out.println(getMethod.invoke(person, null));
    }

}
3、BeanUtils对上面的知识点进行了封装

相关文章

  • JavaBean的属性用反射访问的基础知识

    1、简单利用配置文件以及反射生成一个实体类: 配置 文件内容: 代码实现: 2、利用通过javaBean的属性描述...

  • Java内省机制(Introspector)

    内省 通过反射的方式操作 JavaBean 的属性内省基于反射实现,主要用于操作JavaBean,Introspe...

  • 如何反射访问被子类覆盖属性的父类属性

    如何反射访问被覆盖属性的属性图1 图2

  • Json

    Json与javabean转化 json如下,主要是包括对象,还有数组,对象属性之间用逗号隔开 javabean对...

  • 通过反射把JavaBean映射到map

    通过反射吧一个JavaBean中的属性和属性值拷贝到Map集合中 遍历所有get方法,得到方法名,有此方法名进行截...

  • 2 内省

    1、内省(Introspector) — JavaBean内省基于反射实现,主要用于操作JavaBean,通过内省...

  • JavaBean 规范

    JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,如: public class us...

  • Java 基础 51 JavaBean的概述及其BeanUti

    1.1 JavaBean的概述和规范 JavaBean的概述:将需要操作的多个属性封装成JavaBean 简单来说...

  • Java完全封装(JavaBean)

    Java完全封装(JavaBean)1.属性全部私有2.提供统一的访问方式setter getter3.提供无参和...

  • Java 反射

    一、Model 类 二、实例化 创建JavaBean无参实例 创建JavaBean有参实例 访问JavaBean属...

网友评论

      本文标题:JavaBean的属性用反射访问的基础知识

      本文链接:https://www.haomeiwen.com/subject/nqebuxtx.html