java 遍历对象中的所有属性(字段)和类型案例

业务场景:一个房产交易系统中的业务需求,查询房屋交易状态接口,调用第三方接口返回一个vo对象,该对象的属性主要是描述该房屋的交易情况,比如是否抵押,是否被查封等,现在需要利用该对象的值决定返回给调用方的返回值。(现在一个对象中有很多个属性,大部分属性的值影响返回结果)
代码:
vo对象:

@Data
public class BDCQZTXX {

    private String fwbm;//房屋编码
    private String bdcdyh;//不动产单元号
    private String xzqhdm;//行政区划代码
    private String sfybdy;//是否ybdy
    private String sfzgedy;//是否zgedy
    private String sfzjgcdy;//是否在建工程抵押
    private String sfcf;//是否查封
    private String sfycf;//是否预查封
    private String sfyg;//是否预购
    private String sfydy;//是否预抵押
    private String sfyy;//是否异议
    private String sfdy;//是否抵押
    private String sfsd;//是否sd
    private String sfdj;//是否登记
    private String sfzdzr;//是否zdzr
    private String sfzbyw;//是否在办业务
    private String bz;//备注

模拟业务处理(测试)


	public static void main(String[] args){
	//模拟调用接口返回的对象数据
		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字符串转对象(fastjson)
		BDCQZTXX bdcqztxx =JSONObject.parseObject(s, BDCQZTXX.class);
		//遍历对象的字段数组
		for (Field f : bdcqztxx.getClass().getDeclaredFields()) {
			f.setAccessible(true);//表示反射对象是否抑制java语言访问
			String name = f.getName();//获取字段名称
			Object value = f.get(bdcqztxx);//获取对应字段的值
			Class<?> type = f.getType();//获取对应字段的类型
			System.out.println(type);
			
			//不需要判断的字段
			if ("FWBM".equals(name) ||
					"BDCDYH".equals(name) ||
					"BZ".equals(name) ||
					"XZQHDM".equals(name)) {
				System.out.println("当前不影响判断的字段为 "+name + ":" + value);
				continue;
			}
			
			System.out.println("当前影响判断的字段为 "+name + ":" + value);
			//需要判断的字段
			if ("1".equals(String.valueOf(value))) {
				//0为不可售
				sfks = 0;
				break;
			}
		}
		
		if (sfks == 1) {
			System.out.println("可售");
		}
		if (sfks == 0) {
			System.out.println("不可售");
		}

	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值