[新手学Java]使用内省(Introspector)操作JavaBean属性

获取类bean中的所有属性:

@Test
//获取类bean中的所有属性
public void test1() throws Exception{
    BeanInfo info = Introspector.getBeanInfo(Person.class);
    PropertyDescriptor[] decriptors = info.getPropertyDescriptors();
    for(PropertyDescriptor decriptor : decriptors){
        //输出属性的名称
        System.out.println(decriptor.getName());
        //输出属性的类型
        System.out.println(decriptor.getPropertyType());
    }

}

读/写bean中某个属性:

@Test
//操纵bean中某个属性
public void test2() throws Exception{
    Person p=new Person();

    PropertyDescriptor decriptor = new PropertyDescriptor("username",Person.class);

    //得到属性的写方法
    Method method=decriptor.getWriteMethod();
    method.invoke(p, "张三");

    //得到属性的读方法
    method=decriptor.getReadMethod();
    String username= (String) method.invoke(p);
    System.out.println(username);
}
时间: 2024-08-01 22:46:30

[新手学Java]使用内省(Introspector)操作JavaBean属性的相关文章

新手学JAVA(三)----StringBuilder类

上一篇文章新手学JAVA(二)----String类与StringBuffer类的区别中了解到,String的值是不可变的,这就导致 每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变 类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象. StringBuffer类和StringBuilder类功能基本相似.算是两个双胞胎. 下面主要说两点 第一点  线程安全 StringBuffer  线程安全

【经验分享】新手学Java编程语言怎么入门?

新手学Java编程语言怎么入门?掌握语言基础是第一步,了解java基础知识,Java关键字.核心概念或者基本编码技术.掌握操作符.控制执行流程.访问权限控制.复用类.多态.接口.字符串.泛型.数组.容器深入研究.JavaI/O系统.枚举类型.并发以及图形化用户界面等内容. 为了帮助大家更轻松的学好java开发,给大家分享一套java开发学习资料,小编推荐一个学java开发技术的学习裙:三七四三二零二八二,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干

内省Introspector(反射操作javaBean)

一:内省是一种特殊的反射,来更方便的操作javaBean对象,通过内省可以获取到类字节码的描述器, 然后解剖每一个字段,获取每个字段的读写方法,即get/set方法的反射,然后获取或者是封装bean的value 下面是通过内省向Bean中set值得示例: public static <T> T toBean(T t){ Class<?> clazz = t.getClass(); try { //根据Class对象获取该类的BeanInfo信息 BeanInfo beanInfo

深入理解Java:内省(Introspector)

内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则.如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为"值对象"(Value Object),或"VO".方法比较少.这些信息储存在类的私有变量中,通过set().get()获得. 例如类UserInfo : package

Java:内省(Introspector)

内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则.如果在两个模块之间传递信 息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”.方法比较少.这些信息储存在类的私有变量中,通过set().get()获得. 例如UserInfo public class UserInfo {

新手转行学java难吗?新手学java需要注意的6个方面!

新手转行在成都学java到底难不难,对于这个问题,我们专门做过一个调查,超过1000名已经在职的java从业者,其中有80%的程序员觉得学java不难,20%的程序员觉得前期有点难,其中对于50%自学的新手认为java很难学,遇到问题没人解答,又或者是答案太多,根本不知道哪个回答是正确的.所以,我们得出结论,能系统学习的,有老师指导的java课程学起来相对容易,而没有人指导,仅仅靠看视频学习的同学来说会无形中增加难度. 很多新手在准备转行学习java之前,在网上看到或听到很多不懂的人会说,jav

[新手学Java]使用beanUtils控制javabean

使用BeanUtils设置/读取属性的值以及默认支持的自动转化: @Test //使用BeanUtils设置/读取属性的值以及自动转化 public void test1() throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{ Person p=new Person(); //使用BeanUtils设置属性的值 BeanUtils.setProperty(p, "username&quo

新手学JAVA(六)----处理随机性的数据

基础知识 实例 在我们的日常生活中会遇到很多随机性的事情,比如:摇奖,彩票,掷色子,这些都可以通过程序计算其中奖的概率.在JAVA的类库中,有一个专门操作这种随机性数据的类--Random类. 基础知识 Random类一般使用在那些随机性比较强的场合,因为这些场合都含有一种随机的特性,也就是使用同样的方法去操作数据,每次操作的结果都不一样. 下面是Random类的常用方法: 方法 表示 public boolean nextBoolean() 返回true或者是false public doub

新手学Java(一)——Equals和“==”的区别

一句话概括: 如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象.如果两边是基本类型,则比较的就是值. ==不属于任何类,而equals则是任何类(Java中)的一个方法. equals()是每个对象与生俱来的方法,因为所有类的最终基类就是Object(除去Object本身):而equals()是Object的方法之一. 我们可以这样比较: 1)Primitive1(基本类型)== Primitive2(基本类型) 2)Object1 Reference1(对象引用)== Object1