A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨增坤 于 2013-9-11 17:46 编辑
  1. import org.apache.commons.beanutils.BeanUtils;

  2. public class BeanUtilsDemo1
  3. {
  4. public static void main(String[] args) throws Exception
  5. {
  6. Person p1 = new Person("Ansen", 24);
  7. BeanUtils.setProperty(p1,"age","23");
  8. }

  9. }

  10. class Person
  11. {
  12. private String name ;
  13. private int age;

  14. public Person(String name , int age)
  15. {
  16. this.name = name ;
  17. this.age = age;
  18. }
  19. public String getName()
  20. {
  21. return name;
  22. }
  23. public void setName(String name)
  24. {
  25. this.name = name;
  26. }
  27. public int getAge()
  28. {
  29. return age;
  30. }
  31. public void setAge(int age)
  32. {
  33. this.age = age;
  34. }

  35. }
复制代码
Exception in thread "main" java.lang.reflect.InvocationTargetException: Cannot set age
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1019)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:456)
at com.JavaBean.BeanUtilsDemo1.main(BeanUtilsDemo1.java:11)
Caused by: java.lang.NoSuchMethodException: Property 'age' has no setter method in class 'class com.JavaBean.Person'
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2138)
at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1957)
at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:2064)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1017)
... 2 more

以上想set age属性,却抱错了,实在搞不懂哪里错了?

接下来试试get 属性的值,发现还是抱错,抱错信息如下,请大侠帮忙分析一下。。
Exception in thread "main" java.lang.NoSuchMethodException: Property 'name' has no getter method in class 'class com.JavaBean.Person'
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 com.JavaBean.BeanUtilsDemo1.main(BeanUtilsDemo1.java:10)



我使用BeanUtils的Jar包为:commons-beanutils-1.8.3.jar,今天从网上download的
日志jar为:commons-logging-1.1.3.jar



评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

3 个回复

倒序浏览
Class Perosn类 改为“public class Person”,你需要给Peron类加上修饰符就没问题了,少年,再运行试试..

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1 很给力!

查看全部评分

回复 使用道具 举报
lonely_zb 发表于 2013-9-6 02:05
Class Perosn类 改为“public class Person”,你需要给Peron类加上修饰符就没问题了,少年,再运行试试.. ...

改为Public 可以了,可是为什么会是这样呢?操作JavaBean一定要写成public吗?

点评

BeanUtils解压包后有apidocs,你可以查找一下,这个getProperties的方法..  发表于 2013-9-6 13:13
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马