Java 是否可以使用反射使集合(列表)的大小小于0?
我们可以让列表的大小小于0吗。我们可以使用反射使列表或映射的大小小于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; }
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,因此我选择了它。很可能这对你也是有效的。