java内省属性,内省操作javabean属性

内省操作javabean属性,javabean person类。

public class person {

private string name;

private string password;

private int age;

public string getab(){

return null;

}

public string getname() {

return name;

}

public void setname(string name) {

this.name = name;

}

public string getpassword() {

return password;

}

public void setpassword(string password) {

this.password = password;

}

public int getage() {

return age;

}

public void setage(int age) {

this.age = age;

}

}

内省操作

import java.beans.beaninfo;

import java.beans.introspector;

import java.beans.propertydescriptor;

import java.lang.reflect.method;

import org.junit.test;

//使用内省api操作bean的属性

public class demo1 {

// 得到bean的所有属性

@test

public void test1() throws exception {

beaninfo info = introspector.getbeaninfo(person.class, object.class);

propertydescriptor[] pds = info.getpropertydescriptors();

for (propertydescriptor pd : pds) {

system.out.println(pd.getname());

}

}

// 得到bean的指定属性:get

@test

public void test2() throws exception {

person p = new person();

propertydescriptor pd = new propertydescriptor("age", person.class);

// 得到属性的写方法,为属性赋值

method method = pd.getwritemethod(); // setage

method.invoke(p, 45);

// system.out.println(p.getage());

// 获取属性值

method = pd.getreadmethod();

system.out.println(method.invoke(p, null));

}

//获取当前操作属性的类型

@test

public void test3() throws exception {

person p = new person();

propertydescriptor pd = new propertydescriptor("age", person.class);

system.out.println(pd.getpropertytype());

}

}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值