1. 程式人生 > >利用BeanUtils與PropertyUtils進行javabean的內省操作

利用BeanUtils與PropertyUtils進行javabean的內省操作

package com.franky.bean;

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

/**
 * @描述 BeanUtils與PropertyUtils的使用	需要JAR包commons-beanutils.jar與commons-logging-1.1.jar
 * @作者 franky
 * @日期 2014-12-31 下午12:04:24
 */
public class JavaBeanTestWithBeanUtils {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		Point point = new Point(5, 5);
		
		//beanutils操作bean的屬性都會轉換為字串
		//利用beanutils得到bean物件的屬性值
		System.out.println(BeanUtils.getProperty(point, "x"));
		//BeanUtils返回的是String型別
		System.out.println(BeanUtils.getProperty(point, "x").getClass().getName());
		
		//利用beanutils設定bean物件的屬性值
		BeanUtils.setProperty(point, "x", 10);
		System.out.println(BeanUtils.getProperty(point, "x"));
		
		//可以對非基本型別的屬性進行級聯操作,獲取date屬性中的time
		//將非基本型別的屬性物件同樣當作bean物件操作
		System.out.println(BeanUtils.getProperty(point, "date.time"));
		//設定date的time屬性值,BeanUtils只支援8種基本資料型別的轉換,其他型別需要進行ConvertUtils.register();進行型別轉換
		BeanUtils.setProperty(point, "date.time", 1234567);
		System.out.println(BeanUtils.getProperty(point, "date.time"));
		
		//利用PropertyUtils進行屬性值的獲取,返回的值型別為屬性的本型別
		//而不是BeanUtils返回的都是String型別
		
		System.out.println(PropertyUtils.getProperty(point, "x"));
		//本型別為Integer
		System.out.println(PropertyUtils.getProperty(point, "x").getClass().getName());
		
	}

}

Point類:

package com.franky.bean;

import java.util.Date;

public class Point {
		private int x;
		private int y;
		private Date date = new Date();
		/**
		 * @return the date
		 */
		public Date getDate() {
			return date;
		}
		/**
		 * @param date the date to set
		 */
		public void setDate(Date date) {
			this.date = date;
		}
		/**
		 * @return the x
		 */
		public int getX() {
			return x;
		}
		/**
		 * @param x the x to set
		 */
		public void setX(int x) {
			this.x = x;
		}
		/**
		 * @return the y
		 */
		public int getY() {
			return y;
		}
		/**
		 * @param y the y to set
		 */
		public void setY(int y) {
			this.y = y;
		}
		public Point(int x, int y) {
			super();
			this.x = x;
			this.y = y;
		}
	}


相關推薦

利用BeanUtilsPropertyUtils進行javabean內省操作

package com.franky.bean; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.b

Python3 利用POP3smtplib進行計算機遠程控制

不足 cmd 通過 for asc rom 利用 [1] try 初習,代碼有不足之處,歡迎指出。 跟大家分享的是,通過發送端發送cmd命令,從而對接收端進行cmd命令的控制。 1 #接收端代碼 2 from poplib import POP3 3 import

利用反射dom4j讀取javabean生成對應XML和讀取XML得到對應的javabean物件集合

首先實現生成對應的JAVAbean的XML檔案方法 /** * DMO4J寫入XML * @param obj 泛型物件 * @param entityPropertys 泛型物件的List集合 * @param Encode

如何利用 Git GitHub 進行多人協作開發

1. 首先 “Fork” 他人的 repository(程式碼倉庫)        “Fork” 的名詞是 “叉子” 的意思,不過這裡取的是動詞 “分叉,建一個分支” 的意思。進入你想參與合作開發的倉庫介面,點選右上角的 “Fork” 

【java小程式】利用ffmpeg對視訊進行截圖操作

ffmpeg程式對視訊進行的截圖的命令如下語法如下: ffmpeg.exe -ss 00:00:01 -i spring.mp4 -vframes 1 bb.jpg 00:00:01 擷取視訊圖片的時間。 spring.map4 需要擷取的視訊名稱。 1

利用ScannerSonarJS進行js靜態程式碼檢查

安裝SonarQube 6.7 LTS版本 檢視sonar-scanner是否安裝成功,執行一下命令 ./sonar-scanner -v 執行程式碼分析命令在專案跟目錄 sonar-sc

利用棧對資料進行逆置操作

#include "stdafx.h" #include<iostream> using namespace std; class stack                     //利用棧將元素逆置   { private:int msize;    //

利用python對DNS進行的一系列操作

 首先我們先來介紹DNS是什麼: DNS是域名系統的縮寫,是因特網的一項核心服務,DNS是一個分散式的資料庫,主要用來把主機名轉換為IP地址。 DNS存在的必要性主要有兩點:1.它可以使人們比較方便容易的記住名字,比如www.baidu.com 而不是61.135.16

(資料科學學習手札93)利用geopandasPostGIS進行互動

> 本文完整程式碼及資料已上傳至我的`Github`倉庫[https://github.com/CNFeffery/DataScienceStudyNotes](https://github.com/CNFeffery/DataScienceStudyNotes) # 1 簡介   `PostGIS`作為

利用反射給JavaBean中的屬性進行讀寫操作類PropertyDescriptor

概述 PropertyDescriptor描述Java Bean中通過一對儲存器方法(getter / setter)匯出的一個屬性。我們可以通過該PropertyDescriptor對bean中的該屬性進行讀取和寫入操作,也可以設定其getter / setter。

使用Apache的BeanUtils進行JavaBean的反射操作

                對JavaBean的操作,Java提供了一套自己的方法,但是用起來感覺不咋的,但是Apac

利用 BeanUtils 將 Map Bean 進行相互轉換(把 map 值放入 Bean 的屬性中)

map -》 Bean BeanUtils.populate(Object bean, Map<String, ? extends Object> properties); B

html domjavascript的關系 -我們用JavaScript對網頁(HTML)進行的所有操作都是通過DOM進行

兩種 得來 來講 都對 標記 組織 程序員 tro sdn 一,什麽是DOM (參考源http://www.cnblogs.com/chaogex/p/3959723.html) DOM是什麽 DOM全稱為The Document Object Model,應該理解為是一個

利用truffle智能合約進行交互

調用 方便 style person 部署項目 17.1 ubunt AR exp 系統 ubuntu 17.10 , 心好痛,又買了一個 強烈建議使用xshell進行前期的測試工作,很容易管理幾個終端,如下圖,連開5個終端,4個進行實驗,1個查看相關文件參數,比原來

[Xcode10 實際操作]七、檔案資料-(18)使用MarkMan設計師進行心靈溝通

本文將演示MarkMan的使用。 在介面開發過程中,最終的效果和設計稿難免有些出入, 通常是顏色、位置、尺寸方面的偏差,使用MarkMan助你領會設計師的意圖。 當點選軟體的歡迎介面時,會彈出開啟視窗,在彈出的開啟視窗中,選擇一張設計稿。 開啟設計稿後,將自動進入工作介面。 長度標記工具。它可

利用Thrift使JavaC#進行通訊

struct UserProfile{ 1:i32 id, 2:string name, 3:string blurb } service UserStorage{ vo

使用JAXB進行JavaBean物件XML檔案的相互轉化

思想:父標籤相當於一個物件,子標籤相當於物件的屬性,然後迴圈巢狀。 JAXBContext類,是應用的入口,用於管理XML/Java繫結資訊。 Marshaller介面,將Java物件序列化為XML資料。 Unmarshaller介面,將XML資料反序列化為Java

利用maven結合Junit4cobertura進行單元測試

問題說明: 本人利用maven結合Junit與cobertura外掛進行測試時,直接執行如下命令: mvn clean test cobertura:cobertura 結果完全正常(pom檔案中未宣告cobertura外掛的版本、配置等資訊),用例覆蓋率也正

C#利用NPOI對Excel進行基本操作

C#利用NPOI操作Excel詳解 一、 下載npoi控制元件,並進行引用。 1.下載地址: 2.引用npoi (1)、下載後的npoi包括5個dll檔案: (2)、下載完成之後首先建立一個控制檯程式,然後在視圖裡面,調出解決方案資源管理器,點選“引用”>

python 64式: 第20式、sqlalchemy進行資料庫操作alembic進行資料庫升級

文章目錄編排如下: 1 引言 2 使用sqlalchemy實現資料庫增刪改查 3 使用alembic進行資料庫升級 4 總結 1 引言 sqlalchemy是python專案採用的ORM(物件關係對映),主要用於資料庫相關的操作。 而alembic是與sqlalchemy搭配使用的資料庫升