java.beans 写法

根据JDK说明,先说说这几个class的用途:

1.Introspector
  通过这个类可以分析Bean的类和超类,寻找显式和隐式信息

  方法:Introspector.flushCaches() 刷新所有 Introspector 的内部缓存

(详细见JDK-API)

2.BeanInfo

  API解释:"希望提供有关其 bean 的显式信息的 bean 实现者可以提供某个 BeanInfo 类,该类实现此 BeanInfo 接口并提供有关其 bean 的方法、属性、事件等显式信息。 "

3.PropertyDescriptor
描述 Java Bean 通过一对存储器方法导出的一个属性,通俗点就是Bean中的方法

简单的Bean操作代码如下:

/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		LoaderClass c = new LoaderClass();
		TestBean t = (TestBean) c.setBean();
		System.out.println("age:"+t.getAge());
		System.out.println("id:"+t.getAge());
		System.out.println("name:"+t.getAge());
	}
	
	
	public Object setBean() throws Exception{
		Object t = null;
		try {
			t = TestBean.class.newInstance();
		} catch (InstantiationException e1) {
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			e1.printStackTrace();
		}
		BeanInfo info = Introspector.getBeanInfo(TestBean.class);
		PropertyDescriptor[] pro = info.getPropertyDescriptors();
		for(int a=0;a<pro.length;a++){
			if(pro[a].getName().equals("class")){
				continue;
			}
			Method method = pro[a].getWriteMethod();
			Object[] param = new String[]{"A"};
			System.out.println(method.getName());
			try {
				method.invoke(t, param);
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			}
		}
		return t;
	}

你可能感兴趣的:(java)