学习JavaBean 遇到的问题

本文介绍了如何使用Apache BeanUtils工具,包括安装配置步骤、解决常见问题,并演示了如何利用BeanUtils进行属性复制与描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习了Apache编写的Beanutils工具的基本使用方法,使用步骤如下:

1)官网下载2各工具BeanutilsLogging 解压后将两个工具的主要文件拷贝至工程lib目录下


2)右键beanutils及logging jar工具,依照下图加入Build path


能看到如下状态


3)编写了person.java的 javabean类以及测试类IntroSepectorDemo.java 同时导入beanutils的jar包

package JavaBean;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.apache.commons.beanutils.BeanUtils;

public class IntroSpectorDemo {
	public static void main(String[] args) throws Exception {
		person p = new person("zhangsan", 24);
			
		String str = BeanUtils.getProperty(p, "name");
		System.out.println(str);
	}
}


person类

package JavaBean;

class person {
	private String name1;
	private int age;

	public String getName() {
		return name1;
	}

	public void setName(String name) {
		this.name1 = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public person(String name, int age) {
		super();
		this.name1 = name;
		this.age = age;
	}
}
运行提示找不到getter name方法


明明是有方法的,为啥提示找不到呢,最终经过百度查询在某论坛高人指点javabean类应该使用public进行修饰

程序修改后,运行成功!


最后再附加上BeanUtils的2种最常用的方法populate 和 describe,可以将Bean中属性转换为Map对象,测试代码如下

package JavaBean;

import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;

public class beanutilDemo {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		//初始化m类型为Map
		Map<String,String> m = new HashMap<String,String>();
		//往Map中存入键值对
		m.put("name", "zhangsan");
		m.put("age", "24");		
		//初始化p对象类型为person
		person p = new person();
		//用m的属性map给p对象赋值,使用Bean工具的populate方法
		BeanUtils.populate(p, m);
		//打印赋值结果
		System.out.println(p.getName());
		System.out.println(p.getAge());
		//建立另外一个p1对象并进行初始化值
		person p1 = new person("张三", 28);
		//通过Beanutils的describe方法将p1对象的属性存为map对象m1
		Map<String,String> m1 = BeanUtils.describe(p1);
		//用m1的属性map给p对象赋值,使用Bean工具的populate方法
		BeanUtils.populate(p, m1);
		//打印赋值结果
		System.out.println(p.getName());
		System.out.println(p.getAge());
	}

}
运行结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值