记录一次泛型的使用

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

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;
    }
上一篇:反射机制


下一篇:go语言操作mysql数据库