import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method; import org.junit.Test; //使用内省api操作bean的属性
public class Demo { /**
*
* @throws Exception
*
*/
//得到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的指定属性:age
@Test
public void test2() throws Exception{ Person p = new Person(); PropertyDescriptor pd = new PropertyDescriptor("age", Person.class); //得到属性的写方法,为属性复制
Method method = pd.getWriteMethod();//public void setAge(){} method.invoke(p, 32); //获取属性的值
method = pd.getReadMethod();//public void getAge(){}
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());
} }
 public class Person {// javabean

     private String name;
private String password;
private int age; 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;
} public String getAb(){
return null;
} }

最新文章

  1. 使用jquery实现单选框、多选框取消选中状态
  2. 06-图1 List Components
  3. vim编码相关配置
  4. redis memcache
  5. html文件引入其它html文件的几种方法:include方式
  6. vb6源码后台点击任意窗口指定坐标XY位置,支持FLASH和一般的游戏
  7. vue1与vue2的路由 以及vue2项目大概了解
  8. 关于foo的一个面试题
  9. uiautomator设备和选择器~Python详解
  10. struts拦截器的知识
  11. C#子类重写父类函数的两种方法
  12. SAS常用函数
  13. 使用urllib2实现图片文件下载
  14. UVAlive6807 Túnel de Rata (最小生成树)
  15. Linux setfacl/getfacl命令详解
  16. Java 并发多线程处理优秀博文整理
  17. A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!
  18. putty 启动 linux 下的oracle
  19. Linux-获得命令帮助man
  20. 6、easyUI-拖放事件及应用

热门文章

  1. 《DSP using MATLAB》为什么要z变换?
  2. Swift3.0语言教程使用路径字符串
  3. 学习资源asp.net
  4. iOS NSDate获取当前时间并格式化
  5. 通过adb命令打印log
  6. java实现文件上传--flash上传
  7. NUC_TeamTEST_C && POJ2299(只有归并)
  8. Codeforces Beta Round #6 (Div. 2 Only)
  9. POJ 1654 Area(水题)
  10. tornado 学习笔记2 Python web主流框架