java基础 ---- BeanUtils
BeanUtils的理解概述:
- JavaBean是符合标准格式的Java类的统称。 要求:
1. 类必须被public修饰
2. 必须提供空参的构造器
3. 成员变量必须使用private修饰
4. 提供公共setter和getter方法 - BeanUtils工具是apache提供的用于操作JavaBean的API,BeanUtils把JavaBean常规操作封装成方法的便利性体现在:如果原生java代码有多行,BeanUtils只需要调用对应方法一句话就行了;如果原生java也只是一句代码的事,BeanUtils方法只要改下参数就可以操作不同的JavaBean对象。
- BeanUtils在设置或者获取成员变量的值时,通过属性对应的set(),get()方法完成。属性不直接等同于成员变量,而是setter和getter方法截取后的产物例如:getUsername() --> Username--> username 。一般请情况下属性名与成员变量名称与属性名相等。
JavaBean的使用概述:
BeanUtils类有静态方法:
-void setProperty(Object bean,String name,Object value);执行属性为name的set方法,参数为value。
-void getProperty(Object bean,String name);执行属性为name的get方法。
-void populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中
javabean的测试代码:
/**
* javaBean标准的实体类User
*/
public class User {
private int id;
private String username;
private String password;
private String gender;
public void setHehe(String gender){
this.gender = gender;
}
//当属性名与成员变量不一致时,对应的方法为BeanUtils.getProperty(user,"hehe");
public String getHehe(){
return gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
/**运行前提:
* 1.IDEA提示下导入相关jar包
* 2.导入运行时参数要求的javeBean标准实体类User
*/
/**BeanUtilsTest:
* 1.测试setProperty()
* 2.测试getProperty()
* 3.测试populate()
*/
public class BeanUtilsTest {
@Test
public void test(){
User user = new User();
try {
//1.
BeanUtils.setProperty(user,"username","马龙");
System.out.println(user); //User{id=0, username='马龙', password='null'}
//2.
String username = BeanUtils.getProperty(user, "username");
System.out.println(username); //马龙
//3.
Map<String,String> map = new HashMap();
map.put("username","马龙");
map.put("password","123123");
BeanUtils.populate(user,map);
System.out.println(user); //User{id=0, username='马龙', password='123123'}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}