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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖川 中级黑马   /  2013-12-8 23:00  /  921 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 肖川 于 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方法啊。求解答。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

5 个回复

倒序浏览
你的IntroSpectorDemoBean1类缺少了public修饰
我在在eclipse里面尝试:
1、按照你这样的写法,在同一个.java文件中报错
2、分两个.java文件分开写两个类,有public修饰IntroSpectorDemoBean1的时候没有报错,去掉IntroSpectorDemoBean1类的public修饰后报错
具体的道理还没有完全弄懂

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
{:soso_e179:}终于解决了!谢谢
回复 使用道具 举报
这是百度关于javabean的描述。。
老张在讲课的时候没有提到javaBean必须是公共的和具体的。

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

谢谢同学了。。长知识了。虽然是查的百度。。。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
風諾 发表于 2013-12-9 00:36
你的IntroSpectorDemoBean1类缺少了public修饰
我在在eclipse里面尝试:
1、按照你这样的写法,在同一个.ja ...

Thank you!
回复 使用道具 举报
汪洋大海 发表于 2013-12-9 04:23
这是百度关于javabean的描述。。
老张在讲课的时候没有提到javaBean必须是公共的和具体的。

非常感谢。:P
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马