![]() |
1
4
第二种方法更好。永远不要隐藏异常-您依赖的假设是c.contains(null)仅在集合中存在null的情况下抛出NullPointerException。但是,如果由于equals方法的问题而抛出NullPointeException,那么您的代码中将有一个bug,并且您将它隐藏起来。 编辑: 如果指定的元素为null,并且此集合不允许null元素(可选),则从contains的JavaDoc中抛出NullPointerException。
|
![]() |
2
1
首先转换为数组,然后遍历数组,而不仅仅是遍历集合,这有什么意义?我会做第二个,没有额外的转换。
|
![]() |
3
1
在数组中复制参数集合更安全。集合参数可能会同时更改(可能是一个并发集合)(也可能是恶意编写的)。 此外,捕获运行时异常也不是一种很好的方法。
您可能想使用
|
![]() |
4
0
如果要添加的集合是非NullCollection父类的子类,则还可以添加a短路以不测试Null。 |
![]() |
5
0
看来这两种方法都不好。我发布这个答案只是为了将信息整合到一个帖子中。 TofuBeer指出了方法1的逻辑中被忽略的缺陷,其中存在其他可能抛出但无法捕获的异常。因此,一般来说,试图捕捉非异常条件的异常总是不好的。 保罗指出,我认为安全的演员阵容实际上并不安全。我希望在输出强制转换上强制执行集合泛型,但是它将返回对象[]。正如他指出的,我可以使用一个临时设置来存储数据,同时搜索空值。
因此,我想理想的方法是:
|
![]() |
Jace Johnson · 我应该使用多个地图功能还是只使用一个 11 月前 |
|
Pop Bob · Api返回UnsupportedMediaType 1 年前 |
![]() |
Mr FoX · 如何从mysqli输出json数组,而[重复] 1 年前 |