最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java如何遍歷對象中的所有屬性(字段)和類型

 更新時間:2023年07月24日 14:12:30   作者:識你老鼠  
這篇文章主要介紹了java如何遍歷對象中的所有屬性(字段)和類型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java遍歷對象中的所有屬性(字段)和類型

業(yè)務(wù)場景

一個房產(chǎn)交易系統(tǒng)中的業(yè)務(wù)需求,查詢房屋交易狀態(tài)接口,調(diào)用第三方接口返回一個vo對象,該對象的屬性主要是描述該房屋的交易情況,

比如是否抵押,是否被查封等,現(xiàn)在需要利用該對象的值決定返回給調(diào)用方的返回值。(現(xiàn)在一個對象中有很多個屬性,大部分屬性的值影響返回結(jié)果)

代碼:

vo對象:

@Data
public class BDCQZTXX {
    private String fwbm;//房屋編碼
    private String bdcdyh;//不動產(chǎn)單元號
    private String xzqhdm;//行政區(qū)劃代碼
    private String sfybdy;//是否ybdy
    private String sfzgedy;//是否zgedy
    private String sfzjgcdy;//是否在建工程抵押
    private String sfcf;//是否查封
    private String sfycf;//是否預(yù)查封
    private String sfyg;//是否預(yù)購
    private String sfydy;//是否預(yù)抵押
    private String sfyy;//是否異議
    private String sfdy;//是否抵押
    private String sfsd;//是否sd
    private String sfdj;//是否登記
    private String sfzdzr;//是否zdzr
    private String sfzbyw;//是否在辦業(yè)務(wù)
    private String bz;//備注

模擬業(yè)務(wù)處理(測試)

public static void main(String[] args){
	//模擬調(diào)用接口返回的對象數(shù)據(jù)
		String s = "{\n" +
				"    \"fwbm\": \"1\",\n" +
				"    \"bdcdyh\": \"1\",\n" +
				"    \"xzqhdm\": \"1\",\n" +
				"    \"sfdy\": \"0\",\n" +
				"    \"sfzjgcdy\": \"0\",\n" +
				"    \"sfcf\": \"0\",\n" +
				"    \"sfyg\": \"0\",\n" +
				"    \"sfydy\": \"0\",\n" +
				"    \"sfyy\": \"0\",\n" +
				"    \"sfdyi\": \"0\",\n" +
				"    \"sfsd\": \"0\",\n" +
				"    \"sfdj\": \"0\",\n" +
				"    \"sfzdzr\": \"0\",\n" +
				"    \"sfzbym\": \"0\",\n" +
				"    \"bz\": \"\"\n" +
				"  }";
		//是否可售(0不可售1可售)
		int sfks = 1;
		//json字符串轉(zhuǎn)對象(fastjson)
		BDCQZTXX bdcqztxx =JSONObject.parseObject(s, BDCQZTXX.class);
		//遍歷對象的字段數(shù)組
		for (Field f : bdcqztxx.getClass().getDeclaredFields()) {
			f.setAccessible(true);//表示反射對象是否抑制java語言訪問
			String name = f.getName();//獲取字段名稱
			Object value = f.get(bdcqztxx);//獲取對應(yīng)字段的值
			Class<?> type = f.getType();//獲取對應(yīng)字段的類型
			System.out.println(type);
			//不需要判斷的字段
			if ("FWBM".equals(name) ||
					"BDCDYH".equals(name) ||
					"BZ".equals(name) ||
					"XZQHDM".equals(name)) {
				System.out.println("當(dāng)前不影響判斷的字段為 "+name + ":" + value);
				continue;
			}
			System.out.println("當(dāng)前影響判斷的字段為 "+name + ":" + value);
			//需要判斷的字段
			if ("1".equals(String.valueOf(value))) {
				//0為不可售
				sfks = 0;
				break;
			}
		}
		if (sfks == 1) {
			System.out.println("可售");
		}
		if (sfks == 0) {
			System.out.println("不可售");
		}
	}

就此完成?。?!

java遍歷對象屬性,并將屬性值不為空的取出

public void getValue(SelectIdListDto selectIdListDto){
?? ??? ?Field[] field = selectIdListDto.getClass().getDeclaredFields(); ? ? ? ?
?? ??? ?for(int j=0 ; j<field.length ; j++){ ? ?
?? ? ? ? ? ?String name = field[j].getName(); ??
?? ? ? ? ? ?name = name.substring(0,1).toUpperCase()+name.substring(1);?
?? ? ? ? ? ?String type = field[j].getGenericType().toString(); ?
?? ? ? ? ? ?if(type.equals("class java.lang.String")){ ??
?? ? ? ? ? ? ? ?Method m;
?? ? ? ? ? ? ? ?String value;
?? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ?m = selectIdListDto.getClass().getMethod("get"+name);
?? ??? ??? ??? ??? ?value = (String) m.invoke(selectIdListDto);
?? ? ? ? ? ? ? ? ? ?if(value != null && !"".equals(value)){ ?
?? ? ? ? ? ? ? ? ? ? ? ?System.out.println(name);
?? ? ? ? ? ? ? ? ? ? ? ?System.out.println(value);
?? ? ? ? ? ? ? ? ? ?}?
?? ??? ??? ??? ?} catch (IllegalAccessException e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?} catch (IllegalArgumentException e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?} catch (InvocationTargetException e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?} catch (NoSuchMethodException e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?} catch (SecurityException e) {
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?} ?
?? ? ? ? ? ?} ? ? ? ? ? ? ? ? ??
?? ??? ?}
?? ?}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java中的反射機制和動態(tài)代理

    詳解Java中的反射機制和動態(tài)代理

    本文將詳細介紹反射機制以及動態(tài)代理機制,而且基本現(xiàn)在的主流框架都應(yīng)用了反射機制,如spring、MyBatis、Hibernate等等,這就有非常重要的學(xué)習(xí)意義
    2021-06-06
  • 淺談Java中replace與replaceAll區(qū)別

    淺談Java中replace與replaceAll區(qū)別

    這篇文章主要介紹了Java中replace與replaceAll區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 深入理解Mybatis中的resultType和resultMap

    深入理解Mybatis中的resultType和resultMap

    這篇文章給大家介紹了mybatis中的resultType和resultMap的用法實例講解,MyBatis中在查詢進行select映射的時候,返回類型可以用resultType,也可以用resultMap,至于兩種用法區(qū)別,通過本文一起學(xué)習(xí)吧
    2016-09-09
  • JAVA文件讀取常用工具類(8種)

    JAVA文件讀取常用工具類(8種)

    JAVA操作文件在經(jīng)常會使用到,本文匯總了部分JAVA操作文件的讀取常用工具類,主要介紹了8種方法,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例

    java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例

    這篇文章主要介紹了java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java十分鐘精通類?封裝?繼承

    Java十分鐘精通類?封裝?繼承

    基礎(chǔ)不牢地動山搖,類、封裝、繼承是我們在學(xué)習(xí)基礎(chǔ)時必然要碰到的知識點,讓我們一起來學(xué)習(xí)或回顧一下,感興趣的伙伴來看看吧
    2022-03-03
  • Idea打包springboot項目沒有.original文件解決方案

    Idea打包springboot項目沒有.original文件解決方案

    這篇文章主要介紹了Idea打包springboot項目沒有.original文件解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 解決spring cloud服務(wù)啟動之后回到命令行會自動掛掉問題

    解決spring cloud服務(wù)啟動之后回到命令行會自動掛掉問題

    這篇文章主要介紹了解決spring cloud服務(wù)啟動之后回到命令行會自動掛掉問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java數(shù)組創(chuàng)建的3種方法6種寫法代碼示例

    Java數(shù)組創(chuàng)建的3種方法6種寫法代碼示例

    這篇文章主要給大家介紹了關(guān)于Java數(shù)組創(chuàng)建的3種方法6種寫法,在Java中我們可以使用關(guān)鍵字new來創(chuàng)建一個數(shù)組,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • springboot下ueditor上傳功能的實現(xiàn)及遇到的問題

    springboot下ueditor上傳功能的實現(xiàn)及遇到的問題

    這篇文章主要介紹了springboot下ueditor上傳功能的實現(xiàn)及遇到的問題,本文分步驟通過實例截圖給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論

逊克县| 安顺市| 东丰县| 乌拉特后旗| 化德县| 调兵山市| 全南县| 宜章县| 平武县| 巴马| 潜山县| 新巴尔虎右旗| 台南市| 五家渠市| 普兰店市| 平安县| 墨竹工卡县| 洪洞县| 乃东县| 酉阳| 炉霍县| 侯马市| 景洪市| 醴陵市| 宁强县| 木里| 邯郸县| 郸城县| 扬州市| 新田县| 兴安县| 两当县| 黄冈市| 桑日县| 醴陵市| 庆云县| 乐昌市| 泸溪县| 大城县| 建湖县| 淳化县|