相关疑难解决方法(0)

有没有办法在for-each循环迭代开始之前避免空值检查?

每次我必须迭代一个集合时,我最终都会检查null,就在for-each循环的迭代开始之前.像这样:

if( list1 != null ){
    for(Object obj : list1){

    }
}
Run Code Online (Sandbox Code Playgroud)

是否有更短的方法,以便我们可以避免编写"if"块?注意:我使用的是Java 5,并且会在一段时间内坚持使用它.

java foreach for-loop

106
推荐指数
9
解决办法
11万
查看次数

为什么增强for循环不执行空检查

为什么增强的for循环在迭代集合之前不执行空值检查.

java

19
推荐指数
2
解决办法
2万
查看次数

Iterator null集合

在不确定集合引用是否为null时,我必须在迭代之前检查null是很常见的.样品:

Collection<Object> collection = ...
...
if(collection != null)//troublesome
    for(Object o : collection)
Run Code Online (Sandbox Code Playgroud)

当然,我知道空集合比null要好得多,但在某些情况下,客户端代码无法控制来自其他模块的可空集合(例如,从第三方代码返回值).所以我写了一个实用工具方法:

public static <T> Iterable<T> nullableIterable(Iterable<T> it){
    return it != null ? it : Collections.<T>emptySet();
}
Run Code Online (Sandbox Code Playgroud)

在客户端代码中,不再需要检查null:

for(Object o : nullableIterable(collection))
...
Run Code Online (Sandbox Code Playgroud)

你认为nullableIterable()合理吗?有什么建议?有顾虑吗?谢谢!

java collections iterator

10
推荐指数
1
解决办法
1万
查看次数

避免在"for"语句中出现空指针异常

在我的代码NullPointerException中,当a List为null 时,我通常使用这种方法来避免s in语句:

if (myList != null && myList.size() > 0) {
    for ( MyObj obj : myList ) {
        System.out.println("MyObjStr: "+obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以在不写"if"语句的情况下执行相同操作,但使用相同的"for"语句?

java collections arraylist

4
推荐指数
3
解决办法
7888
查看次数

标签 统计

java ×4

collections ×2

arraylist ×1

for-loop ×1

foreach ×1

iterator ×1