频道栏目
首页 > 资讯 > JavaScript > 正文

内省操作javabean属性

17-02-28        来源:[db:作者]  
收藏   我要投稿

内省操作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());
	}
}
相关TAG标签
上一篇:js空数组是true还是false
下一篇:RDD的持久化
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站