内省操作javabean的属性

 1 import java.beans.BeanInfo;
 2 import java.beans.IntrospectionException;
 3 import java.beans.Introspector;
 4 import java.beans.PropertyDescriptor;
 5 import java.lang.reflect.Method;
 6
 7 import org.junit.Test;
 8
 9 //使用内省api操作bean的属性
10 public class Demo {
11
12     /**
13      *
14      * @throws Exception
15      *
16      */
17     //得到bean的所有属性
18     @Test
19     public void test1() throws Exception{
20         BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class);
21
22         PropertyDescriptor[] pds = info.getPropertyDescriptors();
23
24         for(PropertyDescriptor pd : pds){
25             System.out.println(pd.getName());
26         }
27     }
28
29     //操纵bean的指定属性:age
30     @Test
31     public void test2() throws Exception{
32
33         Person p = new Person();
34
35         PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);
36
37         //得到属性的写方法,为属性复制
38         Method method = pd.getWriteMethod();//public void setAge(){}
39
40         method.invoke(p, 32);
41
42         //获取属性的值
43         method = pd.getReadMethod();//public void getAge(){}
44         System.out.println(method.invoke(p, null));
45
46
47     }
48
49     //高级点的内容,获取当前操作属性的类型
50     @Test
51     public void test3() throws Exception{
52
53         Person p = new Person();
54
55         PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);
56
57         System.out.println(pd.getPropertyType());
58     }
59
60
61 }

 1 public class Person {// javabean
 2
 3     private String name;
 4     private String password;
 5     private int age;
 6
 7     public String getName() {
 8         return name;
 9     }
10
11     public void setName(String name) {
12         this.name = name;
13     }
14
15     public String getPassword() {
16         return password;
17     }
18
19     public void setPassword(String password) {
20         this.password = password;
21     }
22
23     public int getAge() {
24         return age;
25     }
26
27     public void setAge(int age) {
28         this.age = age;
29     }
30
31     public String getAb(){
32         return null;
33     }
34
35
36 }

内省操作javabean的属性

时间: 2024-11-05 10:26:42

内省操作javabean的属性的相关文章

内省 操作javaBean

一.什么是javaBean 二. 操作javaBean的意义 三.如何操作javaBean 四.使用BeanUtils 操作javaBean

使用内省的方式操作JavaBean

[java] view plain copy import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 使用内省的方式操作JavaBean */ public class IntroSpectorTest { publi

内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性

内省.JavaBean.PropertyDescriptor类.Introspector类.BeanUtils工具包.注解.Rentention.Target.注解的基本属性和高级属性 本文转载自:http://blog.sina.com.cn/s/blog_5d65a16901011kom.html 关键字:内省.JavaBean.PropertyDescriptor类.Introspector类.BeanUtils工具包.注解.Rentention.Target.注解的基本属性和高级属性 内

java高新技术-操作javaBean

1. 对javaBean的简单内省操作 public class IntroSpectorTest { public static void main(String[] args) throws Exception{ ReflectPoint pt1 = new ReflectPoint(3, 5); String propertyName = "x"; //"x" --> "X" -->"getX" -->

内省(introspector)------>JavaBean

内省(introspector)------>JavaBean    1.问什么要学内省?        开发框架时,经常需要Java对象的属性来来封装程序的数据,每次使用反射技术完成此操作过于麻烦,所以SUN        公司开发了一套API,专门操作Java对象的属性    2.什么是JavaBean和属性的读写方法?    3.通过内省技术访问(Java.beans包提供了内省的API)JavaBean的两张方式        贱人 小婊砸 矫情 &.通过introspector类获

由内省引出JavaBean的讲解

IntroSpector--内部检查,了解更多细节--内省---JavaBean 一.JavaBean JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用户访问私有的字段,且方法名符合某种命名规则. 如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object ,简称VO). 这些信息学在类中用私有字段来存储,如果读取或者设置这些字段的值,这需要通过一些相应的方法来访

(spring-第12回【IoC基础篇】)JavaBean的属性编辑器

在spring实例化bean的最后阶段,spring利用属性编辑器将配置文件中的文本配置值转换为bean属性的对应值,例如: 代码0011 <bean id="car" class="com.mesopotamia.test1.Car" 2 p:name="汽车" 3 p:brand="宝马" 4 p:maxSpeed="200"/> 上面是文本配置, 再看bean: 代码0021 public

JSP简单练习-EL表达式操作JavaBean

/* * javaBean代码 */ package bean; public class Box { double length; double width; double height; public Box() { length=0; width=0; height=0; } public double getLength() { return length; } public void setLength(double length) { this.length = length; }

JQuery 操作对象的属性值

通过JQuery去操作前台对象(div,span...)的属性是很常见的事情,本文就简单的介绍几种操作情形. 1):通过属性值去获取对象 2):用JQuery去修改对象的属性值 3):获取并修改对象的Style的属性值 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src=&quo