黑马程序员技术交流社区

标题: 关于使用BeanUtils报错,不理解,求助 [打印本页]

作者: 肖川    时间: 2013-12-8 23:00
标题: 关于使用BeanUtils报错,不理解,求助
本帖最后由 肖川 于 2013-12-9 08:42 编辑
  1. package com.itheima.newtech;


  2. import java.beans.BeanInfo;
  3. import java.beans.IntrospectionException;
  4. import java.beans.Introspector;
  5. import java.beans.PropertyDescriptor;
  6. import java.lang.reflect.Method;

  7. import org.apache.commons.beanutils.BeanUtils;
  8. import org.apache.commons.beanutils.BeanUtilsBean;

  9. public class BeanUtilsDemo
  10. {

  11.         /**
  12.          * @param args
  13.          * @throws Exception
  14.          */
  15.         public static void main(String[] args) throws Exception
  16.         {
  17.                 IntroSpectorDemoBean1 isdb = new IntroSpectorDemoBean1(22, "Mike");
  18.                
  19.                 String propertyName = "age";
  20.                
  21.                 BeanUtils.getProperty(isdb, propertyName);
  22.         }

  23. }

  24. class IntroSpectorDemoBean1
  25. {
  26.         private int age;
  27.         public String name;
  28.         
  29.         public IntroSpectorDemoBean1()
  30.         {
  31.                 super();
  32.         }

  33.         public IntroSpectorDemoBean1(int age, String name)
  34.         {
  35.                 super();
  36.                 this.age = age;
  37.                 this.name = name;
  38.         }
  39.         public int getAge()
  40.         {
  41.                 return age;
  42.         }
  43.         public void setAge(int age)
  44.         {
  45.                 this.age = age;
  46.         }
  47.         public String getName()
  48.         {
  49.                 return name;
  50.         }
  51.         public void setName(String name)
  52.         {
  53.                 this.name = name;
  54.         }
  55.         
  56. }
复制代码



报错为:
  1. Exception in thread "main" java.lang.NoSuchMethodException: Property 'age' has no getter method
  2.         at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1127)
  3.         at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
  4.         at org.apache.commons.beanutils.BeanUtilsBean.getNestedProperty(BeanUtilsBean.java:698)
  5.         at org.apache.commons.beanutils.BeanUtilsBean.getProperty(BeanUtilsBean.java:723)
  6.         at org.apache.commons.beanutils.BeanUtils.getProperty(BeanUtils.java:265)
  7.         at com.itheima.newtech.BeanUtilsDemo.main(BeanUtilsDemo.java:26)
复制代码


可是我明明有get方法啊。求解答。
作者: 風諾    时间: 2013-12-9 00:36
你的IntroSpectorDemoBean1类缺少了public修饰
我在在eclipse里面尝试:
1、按照你这样的写法,在同一个.java文件中报错
2、分两个.java文件分开写两个类,有public修饰IntroSpectorDemoBean1的时候没有报错,去掉IntroSpectorDemoBean1类的public修饰后报错
具体的道理还没有完全弄懂
作者: ydcun    时间: 2013-12-9 02:01
{:soso_e179:}终于解决了!谢谢
作者: 汪洋大海    时间: 2013-12-9 04:23
这是百度关于javabean的描述。。
老张在讲课的时候没有提到javaBean必须是公共的和具体的。

以下是百度的原话:
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。

谢谢同学了。。长知识了。虽然是查的百度。。。
作者: 肖川    时间: 2013-12-9 08:34
風諾 发表于 2013-12-9 00:36
你的IntroSpectorDemoBean1类缺少了public修饰
我在在eclipse里面尝试:
1、按照你这样的写法,在同一个.ja ...

Thank you!
作者: 肖川    时间: 2013-12-9 08:36
汪洋大海 发表于 2013-12-9 04:23
这是百度关于javabean的描述。。
老张在讲课的时候没有提到javaBean必须是公共的和具体的。

非常感谢。:P




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