如何知道 List 是否具有固定大小?List<String> fixed = Arrays.asList(new String[100]);这将创建一个固定列表。但 String 对象的实例化数组不再引用 String 数组。
2 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
是否有可能找出某个列表是否是固定大小的?
理论上 - 不。固定大小是列表类实现的一个紧急属性。您只能通过尝试添加元素来确定列表是否具有该属性。
请注意,简单的行为测试无法可靠地区分固定大小的列表和有界列表或永久或临时只读的列表。
在实践中,固定大小的列表通常具有与普通列表不同的类。你可以测试一个对象的类,看看它是否是一个特定的类。因此,如果您了解将使用哪些类在您的代码库中实现固定大小的列表,那么您可以测试特定列表是否是固定大小的。
例如,该Arrays.asList(...)
方法返回一个 List 对象,其实际类是 java.util.Arrays.ArrayList。这是一个私有嵌套类,但您可以使用反射找到它,然后使用Object.getClass().equals(...)
它来测试它。
然而,这种方法是脆弱的。如果 Arrays 的实现被修改,或者如果您开始使用其他形式的固定大小的列表,您的代码可能会中断。
添加回答
举报
0/150
提交
取消