记录一次泛型的使用

本文分享了如何通过泛型和反射技术,将重复的代码逻辑提炼,提高代码复用性和可维护性。展示了如何在`resultDataList`方法中动态操作对象属性,简化了处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前着急写了一段代码,其中除了传入的类型不同之外,代码执行逻辑是一致的,所以我想优化一下,这里记录一下优化过程。
以前代码大致长这样
在这里插入图片描述
优化提取公共代码如下,主要使用到了泛型和反射的功能
在这里插入图片描述
现在就长这样了
在这里插入图片描述
优化的核心代码如下

public <T> List<T> resultDataList (List<T> list,List<Integer> collect) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
		List<T> result = new ArrayList<>();
		for(int i=0;i<list.size();i++) {
			T t= list.get(i);
			String str = JSONObject.toJSONString(t);
			JSONObject json =JSONObject.parseObject(str);
			String mj = json.getString("mj");
			String xcrq = json.getString("xcrq");
			boolean contains = collect.contains(Integer.parseInt(json.getString("id")));
			Class<? extends Object> class1 = t.getClass();
			Field field = class1.getDeclaredField("isExpire");
			field.setAccessible(true);
			//1 取消提醒了 0 没有取消提醒
			field.set(t,contains?"1":"0");
			result.add(t);
		}
		return result;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值