Google Guava处理null
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: Aindex: 1 - value: no valueindex: 2 - value: Cindex: 3 - value: no valueindex: 4 - value: Eindex: 5 - value: no value
更多的方式创建Optional实例
如果我们知道自己要封装的对象是一个空对象,可以用
Optional.absent();
如果封装的对象是一个非空对象,则可以用
Optional.of(obj);
如果不知道对象是否为空,就这样创建创建
Optional.fromNullable(obj);
?
?
?