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);
}