JDK8新特性之Optional和新時間日期

Optional

a)、Optional 容器類常用方法

​ Optional.of(T t) 創建一個Optional 實例

​ Optional.empty() 創建一個空的Optional 實例

​ Optional.ofNullable(T t) 若 t 不爲null,創建Optional 實例,否則創建空實例

​ isPresent() 判斷是否有值

​ orElse(T t) 如果調用對象包含值,返回該值;否則返回 t

​ orElseGet(Supplier s) 如果調用對象包含值,返回該值,否則返回 s 獲取的值(供給型接口想返回什麼類型對象的值都可以,new出來就可以)


​ map(Function f) 如果有值對其處理,並返回處理後的Optional,否則返回Optional.empty()

​ flatMap(Function mapper) 與map類似,要求返回值必須是Optional

@Test
public void test1() {
	Optional<Employee> ofNullable = Optional.ofNullable(new Employee("張三三",23,12345.00));
	Optional<String> map = ofNullable.map((e) -> e.getName());
	System.out.println(map.get());
	
	Optional<String> flatMap = ofNullable.flatMap((e) ->Optional.of(e.getName()));
	System.out.println(flatMap.get());
}

新時間日期API

舊日期存在問題

​ 1、LocalDate LocalTime LocalDateTime (人讀)

​ 2、Instant:時間戳(就是以Unix元年:1970年1月1日00:00:00到某個時間之間的毫秒值) (計算機讀)

​ 3、a)Duration:計算兩個“時間”之間的間隔

​ b)Period:計算兩個“日期”之間的間隔

​ 4、時間校正器:TemporalAdjuster(接口) TemporalAdjusters工具類

​ 5、DateTimeFormatter:格式化時間/日期

​ 6、ZonedDate、ZoneTime、ZoneDateTime:時區

	public static void main(String[] args) {
        DateTimeFormatter isoDate = DateTimeFormatter.ISO_DATE;
        LocalDateTime now = LocalDateTime.now();
        String format = isoDate.format(now);
        System.out.println(format);
	//	System.out.println(ZoneId.getAvailableZoneIds()); 
		LocalDate now2 = LocalDate.now(ZoneId.of("America/Cuiaba"));
		System.out.println("zoneId-----------------"+now2);
		LocalDateTime now3 = LocalDateTime.now(ZoneId.of("America/Cuiaba"));
		ZonedDateTime atZone = now3.atZone(ZoneId.of("Asia/Shanghai"));
		System.out.println(atZone);
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章