针对Arrays.asList的坑,可以有哪些处理措施

上文讲述:Error querying database. Cause: java.lang.reflect.InaccessibleObjectException:

那么如果真的只习惯用Arrays.asList,那也是有对应的解决办法的。

一、解决办法大方向

不管做什么事情,都是先判定一个大方向,不管是小时候做题还是长大了工作都是一个道理。那么针对Arrays.asList的坑,我们晓得他的坑就是 每次调用都会独立new,且new的集合是一个内部类,是不能和我们常用的arrayList画等号的。

二、解决办法

① 针对漏洞一:List的长度是不可改变

核心思想就是将其转成我们常用的 java.util.ArrayList

------使用 new ArrayList<>(Arrays.asList()

java 复制代码
public static void main(String[] args) {
		String stringInfo = "a,b,c,d";
		List<String> stringList1 = new ArrayList<>(Arrays.asList(stringInfo.split(",")));
		stringList1.add("f");
		System.out.println(stringList1);
	}
// 运行结果:[a, b, c, d, f]

new ArrayList 毋庸置疑,就是将list转成我们常用的集合,这样也就不在乎是否能增删改了,哈哈。

-----使用 Arrays.stream( ).collect(Collectors.toList())

java 复制代码
public static void main(String[] args) {
		String stringInfo = "a,b,c,d";
		List<String> stringList1 = Arrays.stream(stringInfo.split(",")).collect(Collectors.toList());
		stringList1.add("f");
		System.out.println(stringList1);
	}
// 运行结果:[a, b, c, d, f]

-----使用 Lists.newArrayList

java 复制代码
public static void main(String[] args) {
		String stringInfo = "a,b,c,d";
		List<String> stringList1 = Lists.newArrayList(stringInfo.split(","));
		stringList1.add("f");
		System.out.println(stringList1);
	}
// 运行结果:[a, b, c, d, f]

针对漏洞二:List是内部类,获取不到其属性信息

都换成我们常用的 java.util.ArrayList,不就问题也迎刃而解

三、mbtatis反射获取不到,如何解决?

  • 办法一就是如果场景满足,而且在无编辑集合的情况下,直接将.size的判断挪到service处理,如果为空,那就不用执行到mybatis层了。
  • 办法二就是比如集合判断值代码的一部分那就只能使用第二点解决漏洞的办法来处理了。
相关推荐
学长毕设2 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw3 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号4 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场4 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠5 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David6 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放6 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户3721574261356 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
小嘉丶学长7 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节