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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 还是回去火星吧 于 2014-4-9 12:47 编辑
  1. package com.cn;
  2. import java.beans.*;
  3. import java.lang.reflect.Method;

  4. import org.apache.commons.beanutils.BeanUtils;
  5. //定义一个测试类。
  6. class Person{
  7.         //私有属性
  8.         private String name;
  9.         private int age;
  10.         //定义get方法
  11.         public String getName(){
  12.                 return name;
  13.         }
  14.         public int getAge() {
  15.                 return age;
  16.         }
  17.         //定义set方法
  18.         public void setName(String name){
  19.                 this.name=name;
  20.         }
  21.         public void setAge(int age){
  22.                 this.age=age;
  23.         }

  24. }
  25. //内省类
  26. public class IntrospectorX {
  27.         public static void main(String[] args) throws Exception
  28.         {
  29.                 //测试用内省的方式读取Person类的 name和age属性;
  30.                 // 1)创建Person对象
  31.                 Person p=new Person();
  32. //                定义要获取的属性名
  33.                 String name="name";        
  34.                 Object obj=BeanUtils.getProperty(p, name);
  35.                 System.out.println(obj);
  36.         }
  37. }
复制代码
求大神找找原因。Exception in thread "main" java.lang.NoSuchMethodException: Property 'name' has no getter method
at com.cn.IntrospectorX.main(IntrospectorX.java:36)



评分

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

查看全部评分

2 个回复

倒序浏览
1、定义一个Person类
  1. package heima.demo;

  2. public class Person {
  3.        
  4.         private String name;
  5.         private int age;
  6.        
  7.         public String getName() {
  8.                 return name;
  9.         }
  10.         public void setName(String name) {
  11.                 this.name = name;
  12.         }
  13.         public int getAge() {
  14.                 return age;
  15.         }
  16.         public void setAge(int age) {
  17.                 this.age = age;
  18.         }

  19. }
复制代码


2、使用BeanUtils
  1. package heima.demo;

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

  3. // 内省类
  4. public class IntrospectorX {
  5.         public static void main(String[] args) throws Exception {
  6.                 // 测试用内省的方式读取Person类的 name和age属性;
  7.                 // 1)创建Person对象
  8.                 Person p = new Person();
  9.                 // 定义要获取的属性名
  10.                 String name = "name";
  11.                 BeanUtils.setProperty(p, name, "Demo");
  12.                 Object obj = BeanUtils.getProperty(p, name);
  13.                 System.out.println(obj + "\t" + p.getName());
  14.         }
  15. }
复制代码


注:使用BeanUtils操作的Bean必须被public修饰
回复 使用道具 举报
lren 发表于 2014-4-9 09:58
1、定义一个Person类

原来是这么回事!3Q ~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马