gpt4 book ai didi

java - 是否有可能找出某个列表是否是固定大小的?

转载 作者:IT老高 更新时间:2023-10-28 20:23:18 25 4
gpt4 key购买 nike

是否有可能找出某个列表是否是固定大小的?我的意思是,例如这段代码:

String[] arr = {"a", "b"};
List<String> list = Arrays.asList(array);

返回由数组支持的固定大小的 List。但是,如果 List 是固定大小的,是否可以在不尝试添加/删除元素并捕获异常的情况下以编程方式理解?例如:

try {
list.add("c");
}
catch(UnsupportedOperationException e) {
// Fixed-size?
}

最佳答案

String[]

创建的列表
List<String> list = Arrays.asList(array);

Arrays 作为封闭类,而由例如 new ArrayList() 创建的类将没有封闭类。因此,以下应该可以检查 List 是否是由于调用 Arrays.toList() 产生的:

static <T> boolean wasListProducedAsAResultOfCallingTheFunctionArrays_asList(List<T> l) {
return Arrays.class.equals(l.getClass().getEnclosingClass());
}

请注意,此方法依赖于未记录的行为。如果他们将另一个嵌套的 List 子类添加到 Arrays 类,它将中断。

关于java - 是否有可能找出某个列表是否是固定大小的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com