Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用反射使集合(列表)的大小小于0?_Java_Reflection_Collections - Fatal编程技术网

Java 是否可以使用反射使集合(列表)的大小小于0?

Java 是否可以使用反射使集合(列表)的大小小于0?,java,reflection,collections,Java,Reflection,Collections,我们可以让列表的大小小于0吗。我们可以使用反射使列表或映射的大小小于0。是的,使用反射设置名为size的字段 例如,查看ArrayList的源代码 private int size; public int size() { return size; } 但你也不必在意。没有人会这样做。是的,使用反射设置名为size的字段 例如,查看ArrayList的源代码 private int size; public int size() { return size; }

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

是的,使用反射设置名为
size
的字段

例如,查看
ArrayList
的源代码

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

但你也不必在意。没有人会这样做。

是的,使用反射设置名为
size
的字段

例如,查看
ArrayList
的源代码

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

但你也不必在意。没有人会那样做。

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

 private int size;
 //...
 public int size() {
     return size;
 }
size
设置为任意值,
size()
方法将返回该值

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

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

没有必要检查
size()<0
。如果您首先假设有人使用反射处理JDK类的属性,那么您最好假设他们设置了
Boolean.TRUE==false


看看使用反射来更改整数缓存中的值以使其成为整数的方法。valueOf返回错误的
int

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

 private int size;
 //...
 public int size() {
     return size;
 }
size
设置为任意值,
size()
方法将返回该值

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

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

没有必要检查
size()<0
。如果您首先假设有人使用反射处理JDK类的属性,那么您最好假设他们设置了
Boolean.TRUE==false


看看使用反射来更改整数缓存中的值以使其成为
整数的方法。valueOf
返回错误的
int

为什么不试试?你为什么认为我们做不到?你想实现什么?假装大小小于零可能不是一个好主意,因为它违反了(隐式?)不变量(“大小是元素的数量”)。我有一个在很多地方进行此类检查的代码。我想看看是否有任何可能性,否则这些检查就没有多大意义。在C语言中,您需要这些检查,否则您可能会写入无效的memeory。在java中,您只需获得一个ArrayOutOfBoundsException。所以java为您制作了许多chreck。您为什么不试试呢?你为什么认为我们做不到?你想实现什么?假装大小小于零可能不是一个好主意,因为它违反了(隐式?)不变量(“大小是元素的数量”)。我有一个在很多地方进行此类检查的代码。我想看看是否有任何可能性,否则这些检查就没有多大意义。在C语言中,您需要这些检查,否则您可能会写入无效的memeory。在java中,您只需获得一个ArrayOutOfBoundsException。所以java为您制作了许多chreck。看起来像我的答案,有着相似的名声,还有我兄弟的名字。;-)@阿列克斯温伟大的思想看起来是一样的。奇怪的是,我们都选择了
ArrayList
。ArrayList是最常用的集合,至少对我来说是这样。它可能更简单,一个哈希表。我以前已经看过ArrayList的src,因此我选择了它。很可能这对你也是有效的。看起来像我的答案,有着相似的名声,还有我兄弟的名字@阿列克斯温伟大的思想看起来是一样的。奇怪的是,我们都选择了
ArrayList
。ArrayList是最常用的集合,至少对我来说是这样。它可能更简单,一个哈希表。我以前已经看过ArrayList的src,因此我选择了它。很可能这对你也是有效的。