黑马程序员:内省

来源:互联网 发布:免费打电话软件 编辑:程序博客网 时间:2024/05/01 10:25
---------------------- android培训、java培训、期待与您交流! ---------------------- 

内省

JavaBean类:一个特殊的java类,主要用于传递数据信息(类的方法的名字满足规定的规则)。

JDK提供了对JavaBean进行操作的一些API,这套API就称为内省。

 

JavaBeanTest.java

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

public class JavaBeanTest {
 /**
  * @param args
  */
 public static void main(String[] args) throws Exception{
  
  JavaBean jb = new JavaBean(1,2);
  String propertyName = "a";
  
  //得到指定实例对象的PropertyDescriptor
  PropertyDescriptor pd = new PropertyDescriptor(propertyName,jb.getClass());
  
  //复杂的方法得到指定实例对象的PropertyDescriptor
//  BeanInfo beaninfo = Introspector.getBeanInfo(jb.getClass());
//  PropertyDescriptor [] pd = beaninfo.getPropertyDescriptors();
//  for(PropertyDescriptor p : pd){
//   if(p.getName().equals(propertyName)){
//    //得到了指定实例对象的PropertyDescriptor
//   }
//  }
  
  Method me = pd.getReadMethod();
  
  System.out.println(me.invoke(jb));
  
  Method me1 = pd.getWriteMethod();
  
  me1.invoke(jb, 3);
  
  System.out.println(jb.getA());
 }
}

JavaBean.java

public class JavaBean {
 private int a ;
 
 private int b ;
 
 public JavaBean(int a, int b) {
  
  this.a = a;
  this.b = b;
  
 }
 public int getA() {
  return a;
 }
 public void setA(int a) {
  this.a = a;
 }
 public int getB() {
  return b;
 }
 public void setB(int b) {
  this.b = b;
 }
 
 
}


 

---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
原创粉丝点击