------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
JavaBean是一种特殊的类,主要用于传递数据信息,可以访问其他类的私有属性。
定义JavaValue类,可以看到x和y为私有属性。
public class JavaValue {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public JavaValue(int x,int y){
this.x=x;
this.y=y;
}
}
下面用JavaBeanTest类取出x值和改变y的值并输出。
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
//取得x的值输出,并改变y的值输出
public class JavaBeanTest {
public static void main(String[] args) throws Exception {
JavaValue jv=new JavaValue(5,7);
//根据get方法定义属性名
String propertyName="x";
//获得propertyName的属性
PropertyDescriptor pd=new PropertyDescriptor(propertyName, jv.getClass());
//获得x属性的读方法
Method methodGetX=pd.getReadMethod();
//反射调用getX()方法
Object retVal=methodGetX.invoke(jv);
//输出x的值
System.out.println("X="+retVal);
System.out.println("************************");
//获得y的写方法
Method methodSetY=pd.getWriteMethod();
//给setY赋值10
methodSetY.invoke(jv, 10);
//调用jv的普通getY()方法输出y的值
System.out.println("y="+jv.getY());
}
}
输出结果为:
X=5
************************
y=7
可以看到JavaBeanTest类从JavaBean类(JavaValue类)改变y值并打印出了x和y的值。