JavaBean及BeanUtils的使用


一、javaBean類的規范:
  1. 必須要有一個默認構造器(無參構造器)
  2. 提供get/set方法,如果只有get方法,那么這個屬性是只讀屬性!
  3. 方法名稱滿足一定的規范,那么它就是屬性!boolean類型的屬性,它的讀方法可以是is開頭,也可以是get開頭!
  4. 屬性:有get/set方法的成員,還可以沒有成員,只有get/set方法。即:

         真正決定是否存在屬性(與成員變量不同)的是是否存在get/set方法

                                                                              而不是是否存在成員變量。

 

 

二、BeanUtils的使用:

准備工作:導入倆個包commons-beanutils.jar、commons-logging.jar

根據反射獲取實例對象:

 ​​​​       Class<Bean> clazz = Bean.class;
        Object bean = clazz.newInstance();

BeanUtils所擁有方法:

BeanUtils.getProperty(Object bean, String propertyName):根據get方法后面首字母小寫英文

                                                                                                獲取屬性
BeanUtils.setProperty(Object bean, String propertyName, String propertyValue):根據set方法

                                                                                                后面首字母小寫英文設置屬性
BeanUtils.populate(Map map, Object bean):將Map數據封裝到JavaBean對象中

CommontUtils.toBean(Map map, Class class):補充的工具類方法,以下為工具類

package Tool;

import java.util.Map;
import java.util.UUID;

import javax.swing.text.StyledEditorKit.ForegroundAction;

import org.apache.commons.beanutils.BeanUtils;

public class commonUtils {
	//生成不重復的32位長的大寫字符串
	public static String uuid() {
		return UUID.randomUUID().toString().replace("-", "").toUpperCase();
	}
	// 把map轉換成指定類型的javaBean對象
	public static <T> T toBean(Map map, Class<T> clazz) {
		try {
			/*
			 * 1. 創建指定類型的javabean對象
			 */
			T bean = clazz.newInstance();
			/*
			 * 2. 把數據封裝到javabean中
			 */
			BeanUtils.populate(bean, map);
			/*
			 * 3. 返回javabean對象
			 */
			return bean;
		} catch(Exception e) {
			throw new RuntimeException(e);		//如果想讓用戶調用時不用try-catch,使用throw new RuntimeException(e)來拋出運行異常
		}
	}
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM