java - 使用反射可以使集合(列表)的大小小于 0 吗?

标签 java reflection collections

我们可以让列表的大小小于 0。我们可以使用反射使列表或 Map 的大小小于 0。

最佳答案

是的。例如在 ArrayList 的源代码中:

 private int size;
 //...
 public int size() {
     return size;
 }

设置size到某个任意值和 size()方法将返回它。

请注意,这很大程度上取决于集合的实现。

OP 询问:我想看看是否有任何可能性,否则这些检查没有多大意义

检查 size() < 0 是没有意义的。如果您首先假设有人使用反射修改了 JDK 类的属性,那么您不妨假设他们已经设置了 Boolean.TRUE == false ...

看看this (very dirty) hack使用反射来更改整数缓存中的值,使 Integer.valueOf返回错误int .

关于java - 使用反射可以使集合(列表)的大小小于 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584581/

相关文章:

java - struts 中的 List<String> 未填充 "Select"

java - 如何显示 ArrayList 中包含重复值的所有项目?

java - 在 java 中创建 <char, int> 的无序映射

c# - 在 C# 中声明集合

java - 限制 ElementTreeSelectionDialog

java - 需要澄清 hibernate 二级缓存

java - 有没有java写的3D建模库

java - Google Guice+策略模式+反射(reflection)

c# - 将属性表单对象复制到另一个对象的扩展方法,第一次尝试

以 Object... 作为参数的 Java 反射