黑马程序员技术交流社区

标题: 求大家查下错误 [打印本页]

作者: 谢威    时间: 2013-7-3 12:28
标题: 求大家查下错误
本帖最后由 谢威 于 2013-7-3 16:57 编辑

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

public class SetProperty{

        public static void setProperty(Object obj, String propertyName, Object value) throws Exception{
                PropertyDescriptor pd = new PropertyDescriptor(propertyName,Object.class);
                Method methodSetX = pd.getWriteMethod();
                methodSetX.invoke(obj, value);
        }
        
        public static void main(String[] args)throws Exception {
                ReflectPoint rf = new ReflectPoint(3,5);//ReflectPoint类见下边
                setProperty(rf,"x",7);
                System.out.println(rf.getX());
        }
}

public class ReflectPoint {
        private int x;
        public int y;
        
        public ReflectPoint(int x, int y) {//构造方法
                super();
                this.x = x;
                this.y = y;
        }
        
        public int getX() {
                return x;
        }
        public void setX(int x) {
                this.x = x;
        }
}

运行之后提示:
Exception in thread "main" java.beans.IntrospectionException: Method not found: isX
        at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:89)
        at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:53)
        at practice.five.SetProperty.setProperty(SetProperty.java:10)
        at practice.five.SetProperty.main(SetProperty.java:20)
求高手告诉我哪错了,谢谢!
作者: j816326    时间: 2013-7-3 12:38
一个class文件中最好只有一个类,如果有多个类 只能有一个是public的修饰 。
  public ReflectPoint(int x, int y) {//构造方法
                 super();//这里调用父类的构造,是Object类的  无法给成员初始化 你注释一下 试试看
                 this.x = x;
                 this.y = y;
         }
作者: 肥猫    时间: 2013-7-3 14:00
大哥,你一个文件一堆的public class...
作者: oxf974025918    时间: 2013-7-3 14:20
把     PropertyDescriptor pd = new PropertyDescriptor(propertyName,Object.class);改为 PropertyDescriptor pd = new PropertyDescriptor(propertyName,obj.getClass());Object.class,obj.getClass()




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2