JavaBean

在软件开发时,一些数据和功能需在很多地方使用,为了方便将它们进行“移植”,Sun公司提出了一种JavaBean技术,使用JavaBean可以对这些数据进行封装,做到一次编写,到处运行。

JavaBean是Java开发语言中一个可以重复使用的软件组织,它本质上就是一个JAVA类。

为了规范JavaBean的开发,两个要求:

(1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。

(2)它提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。

其实和java中的封装是类似的

直接上代码

package cn.itcast.chapter07.javabean;
public class Student {
	private String sid;
	private String name;
	private int age;
	private boolean married;
	// age属性的getter和setter方法
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	// married属性的getter和setter方法
	public boolean isMarried() {
		return married;
	}
	public void setMarried(boolean married) {
		this.married = married;
	}
	// sid属性的getter方法
	public String getSid() {
		return sid;
	}
	// name属性的setter方法
	public void setName(String name) {
		this.name = name;
	}
	public void getInfo() {
		System.out.print("我是一个学生");
	}
}

为了动态访问java对象的属性,我们需要使用BeanUtils工具,

commons-beanutils-1.9.2.jar

commons-logging-1.2.jar

这两个jar包,想上传的,但是显示已经有人上传过了,所以无法上传。你们需要可以百度下载

BeanUtils类的常用方法

static void populate(Object bean,Map<String,?extends Object> properties)根据指定的名称/值对为相应的JavaBean属性设置值

static void setProperty(Object bean,String name,Object value)设置指定的属性值,传入的类型要求能转换成相应属性的类型。

static String getProperty(Object bean,String name)返回指定bean指定属性的值,返回值类型为String类型

直接上代码,感受下它的作用

创建一个Person类

package cn.itcast.chapter07.beanutils;
public class Person {
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

再创建一个BeanUtilsDemo类,该类使用了BeanUtils类的常用方法,代码如下

package cn.itcast.chapter07.beanutils;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class BeanUtilsDemo {
	public static void main(String[] args) throws Exception {
		Person p = new Person();
		// 使用BeanUtils为属性赋值
		BeanUtils.setProperty(p, "name", "Jack");
		BeanUtils.setProperty(p, "age", 10);
		// 使用BeanUtils获取属性值
		String name = BeanUtils.getProperty(p, "name");
		String age = BeanUtils.getProperty(p, "age");
		System.out.println("我的名字是" + name + ",我今年" + age + "岁了!");
		// 创建map集合,用于存放属性及其属性值
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("name", "张三");
		map.put("age", 10);
		// 使用populate()方法为对象的属性赋值
		BeanUtils.populate(p, map);
		// 打印赋值后对象的信息
		System.out.println("姓名:" + p.getName() + ", 年龄:" + p.getAge());
	}
}

结果如下

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值