java8之工具類Optional

Optional工具類產生的意義

java代碼中最常見的異常就是空指針異常NullPointException,爲了防止空指針異常的出現,
會在代碼裏面做大量的判空處理,這樣寫出來的代碼會顯得很醜。java8提供Optional工具類,可以解決判空的問題,同時還還能讓代碼顯得優雅。

Optional工具類,在我看來就是一個單元素的容器,泛型化處理,內部封裝了一些方法,可以讓你自己決定空處理流程,同時還避免了大量醜陋代碼的編寫,good!

Optional工具類的簡單用法

public class MyOptional {
	
	@Test
	public void test1() {
		Optional<String> name = Optional.ofNullable(null);
		
		System.out.println("name is present:" + name.isPresent()); //name is present:false
		
		//System.out.println("name value:" + name.get()); throw Exception
		
		System.out.println("name value:" + name.orElse("none"));  //name value:none
		
		System.out.println("name value:" + name.orElseGet(() -> "none"));  //name value:none
		
		System.out.println(name.map((s) -> s + " hello! ").orElse("none hello!")); //none hello!
	}
	
	@Test
	public void test2() {
		Optional<String> name = Optional.ofNullable("cy");
		
		System.out.println("name is present:" + name.isPresent()); //name is present:true
		
		//System.out.println("name value:" + name.get()); throw Exception
		
		System.out.println("name value:" + name.orElse("none"));  //name value:cy
		
		System.out.println("name value:" + name.orElseGet(() -> "none"));  //name value:cy
		
		System.out.println(name.map((s) -> s + " hello! ").orElse("none hello!")); //cy hello! 
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章