JavaBean 用反射自己实现简单内省操作 基础
2015-07-06 21:06
651 查看
调用类的get和set方法来获取和设置public变量
package test; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; class Point { private double x; private double y; public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } /** * @param x * @param y */ public Point(double x, double y) { super(); this.x = x; this.y = y; } } public class MainTest { public static void main(String[] args) throws IllegalArgumentException, IntrospectionException, IllegalAccessException, InvocationTargetException { Point p = new Point(3, 5); getProperty(p, "x"); setProperty(p, "y", 10); } /** * @param p * @param propertyName * @param value * @throws IntrospectionException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public static void setProperty(Object p, String propertyName, Object value) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { PropertyDescriptor pd = new PropertyDescriptor(propertyName, p.getClass()); Method m = pd.getWriteMethod(); m.invoke(p, value); } /** * @param p * @param propertyName * @throws IntrospectionException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public static Object getProperty(Object p, String propertyName) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { PropertyDescriptor pd = new PropertyDescriptor(propertyName, p.getClass()); Method m = pd.getReadMethod(); Object retValue = m.invoke(p); return retValue; } }
相关文章推荐
- Spring揭秘:第七章-第十二章Spring AOP框架
- Java实现链式存储的二叉查找树(递归方法)
- Java中的System.in,System.out,System.err
- Summary Ranges
- JAVA中最常用的十个快捷键
- Spring技术内幕:Spring AOP的实现原理(五)
- Java集合之ArrayList源码分析
- java基础知识--对super()的理解
- Java遍历列出某一目录下的文件及文件夹,寻找某一指定文件
- Java基础---集合Collection
- 『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)
- java SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- Java RMI例子
- javaSE学习笔记之集合
- 详解Spring MVC 4常用的那些注解
- 第0周-JAVA云课堂学习日志
- java问题查找------从源头查找
- Java Spring的IoC和AOP的知识点速记
- java常用内存设置
- Java中只有按值传递,没有按引用传递!