JavaBean 用反射自己实现简单内省操作 基础

原创 2015年07月06日 21:06:36

调用类的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;
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java基础--对javaBean的简单内省操作

Javabean: package instroSpect; import java.util.Date; public class Javabean { int x; int y; Da...
  • yuj9006
  • yuj9006
  • 2013年10月26日 15:50
  • 395

内省Introspector操作 JavaBean的简单实现方式及稍复杂实现方式 主要用到PropertyDescriptor类

package com.base_super; import java.beans.BeanInfo; import java.beans.IntrospectionException; impor...

通过PropertyDescriptor和Introspector对JavaBean的简单内省操作

package com.franky.bean; import java.beans.IntrospectionException; import java.beans.PropertyDescri...

黑马程序员-javaBean的简单内省操作

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员—java基础学习--JavaBean的内省操作

类加载器:  类加载器提供有相应的方法将.class文件加载到内存中去。 //加载properties文件 InputStream ips = new FileInputStream("confi...

Java 基础加强 - JavaBean与内省操作

Java基础加强JavaBean与内省操作 一.JavaBean 1.     什么叫做JavaBean? JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于...

java基础巩固系列(八):对javabean的内省操作

关于在框架开发中的对javabean的两种内省操作。

【java反射之】对javabean内省操作

内省(Introspector)是Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新的值。通过getNam...

学习笔记之javaweb基础:jsp基本语法,内置对象,对JavaBean的操作语法

Template(模板)data:JSP引擎不处理的部分,比如HTML代码等。 JSP元素:JSP引擎处理的部分        编译器指令(DIRECTIVE):               页指令:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaBean 用反射自己实现简单内省操作 基础
举报原因:
原因补充:

(最多只允许输入30个字)