黑马程序员技术交流社区

标题: 帮我看看BeanUtils 问题! [打印本页]

作者: 郭敏    时间: 2011-10-26 11:25
标题: 帮我看看BeanUtils 问题!
  1. import java.beans.PropertyDescriptor;

  2. import java.lang.reflect.Method;

  3. import org.apache.commons.beanutils.BeanUtils;

  4. public class IntroSpectorTest {

  5.      
  6.         public static void main(String[] args) throws Exception {
  7.            ReflectPoint pt=new ReflectPoint(3,5);
  8.            
  9.            String propertyName="x";
  10.            PropertyDescriptor pd = new PropertyDescriptor(propertyName, pt.getClass());
  11.            Method methodGetX1 = pd.getReadMethod();
  12.            System.out.println(methodGetX1.invoke(pt));
  13.            
  14.            System.out.println(BeanUtils.getProperty(pt, propertyName));
  15.            
  16.    
  17.           System.out.println( pt.getX());
  18.         }      
  19. }

  20. class ReflectPoint {
  21.         private int x;
  22.         private int y;
  23.        
  24.         public ReflectPoint(int x,int y) {
  25.        
  26.                 this.x = x;
  27.                 this.y = y;
  28.         }
  29.         public int getX() {
  30.                 return x;
  31.         }
  32.         public void setX(int x) {
  33.                 this.x = x;
  34.         }
  35.         public int getY() {
  36.                 return y;
  37.         }
  38.         public void setY(int y) {
  39.                 this.y = y;
  40.         }
  41. }
复制代码
运行里,提示
Exception in thread "main" java.lang.NoSuchMethodException: Property 'x' has no getter method in class 'class ReflectPoint'
        at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1327)
        at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)
        at org.apache.commons.beanutils.BeanUtilsBean.getNestedProperty(BeanUtilsBean.java:715)
        at org.apache.commons.beanutils.BeanUtilsBean.getProperty(BeanUtilsBean.java:741)
        at org.apache.commons.beanutils.BeanUtils.getProperty(BeanUtils.java:382)
        at IntroSpectorTest.main(IntroSpectorTest.java:18)

作者: 张帅    时间: 2012-2-18 20:54
声明bean为public class xxx,必须是public,我用默认类型(class xxx)都不行




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