Google Guava提供了一个简单的处理"null"方式
maven 依赖
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>14.0.1</version> </dependency>
1、处理 null 使用if(){}else{}
import java.util.LinkedList;
import java.util.List;
public class App
{
public static void main( String[] args )
{
List<String> list = new LinkedList<String>();
list.add("A");
list.add(null);
list.add("C");
list.add(null);
list.add("E");
list.add("");
String value;
for(int i = 0 ; i < list.size(); i++){
value = list.get(i);
if(value == null || "".equals(value)){
System.out.println("index: "+i+" - value: no value");
}else{
System.out.println("index: "+i+" - value: "+value);
}
}
}
}
2、使用Guava
Guava提供了一个Optional类,可以对空对象进行封装
import java.util.LinkedList;
import java.util.List;
import com.google.common.base.Optional;
import static com.google.common.base.Strings.emptyToNull;
public class App
{
public static void main( String[] args )
{
List<String> list = new LinkedList<String>();
list.add("A");
list.add(null);
list.add("C");
list.add(null);
list.add("E");
list.add("");
Optional<String> possible;
for(int i = 0 ; i < list.size(); i++){
possible = Optional.fromNullable(emptyToNull(list.get(i)));
System.out.println("index: "+i+" - value: "+possible.or("no value"));
}
}
}
输出:
index: 0 - value: A index: 1 - value: no value index: 2 - value: C index: 3 - value: no value index: 4 - value: E index: 5 - value: no value
更多的方式创建Optional实例
如果我们知道自己要封装的对象是一个空对象,可以用
Optional.absent();
如果封装的对象是一个非空对象,则可以用
Optional.of(obj);
如果不知道对象是否为空,就这样创建创建
Optional.fromNullable(obj);