码迷,mamicode.com
首页 > 其他好文 > 详细

Guava Optional 的应用

时间:2014-09-02 18:16:35      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:style   io   使用   java   ar   代码   sp   on   line   

今天老板让普通青年和文艺青年分别写一段SayHello的代码,要求如下,当用户名为null时则称呼“火星人”

不一会普通青年和文艺青年提交了代码。

普通青年的代码:

public void 普通青年_sayHello(String name){
	if(name==null){
	    name = "火星人";
	}
	System.out.println("普通青年说:Hello, "+name);
}


文艺青年的代码:

import com.google.common.base.Optional;

public void 文艺青年_sayHello(String name){
	name = Optional.fromNullable(name).or("火星人");
	System.out.println("文艺青年说:Hello, "+name);
}

文艺青年的代码和普通青年的作用是一模一样的。但是看上去貌似要更风骚一点。


我们JAVA代码中出现的最多的异常是什么,绝对是NullPointException,没有之一。因为对于Null的处理实在是太容易被忽略了。

在Guava中Optional类就是用来强制提醒青年们,注意对Null的判断。


Optional的另外几个方法

Optional<T>.of(T) 为Optional赋值,当T为Null直接抛NullPointException,建议这个方法在调用的时候直接传常量,不要传变量
Optional<T>.fromNullable(T) 为Optional赋值,当T为Null则使用默认值。建议与or方法一起用,风骚无比
Optional<T>.absent() 为Optional赋值,采用默认值
T or(T) 当Optional的值为null时,使用or赋予的值返回。与fromNullable是一对好基友
T get() 当Optional的值为null时,抛出IllegalStateException,返回Optional的值
boolean isPresent() 如果Optional存在值,则返回True
T orNull() 当Optional的值为null时,则返回Null。否则返回Optional的值
Set<T> asSet() 将Optional中的值转为一个Set返回,当然只有一个值啦,或者为空,当值为null时。


提问:

System.out.println(Optional.of(1).of(2).of(3).asSet().size());

会打印什么?

回答:1


Guava Optional 的应用

标签:style   io   使用   java   ar   代码   sp   on   line   

原文地址:http://my.oschina.net/readjava/blog/309265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!