一、Lambda表達式
Java 8中引入了Lambda表達式的概念,這是很重要的一個新特性,它可以使Java中的函數式編程變得更加容易。使用Lambda表達式,可以將函數作為參數傳遞給其他方法,以及定義用於排序、聚合和其他操作的函數。
public static void main(String[] args) {
List list = Arrays.asList("one", "two", "three", "four", "five");
list.forEach(str -> System.out.println(str));
}在上述代碼中,Lambda表達式「str -> System.out.println(str)」用於實現Consumer介面,將每個元素作為參數並對其進行輸出。
二、Stream流
Stream可以看作是Java 8中對於集合類的一種更高級的封裝,它提供了一種對於集合數據進行非常方便的操作方式。利用Stream,可以輕鬆地對集合中的數據進行過濾、映射等操作,而這些操作非常適合用於函數式編程。
List<String> list = Arrays.asList("one", "two", "three", "four", "five");
List<String> filteredList = list.stream().filter(s -> s.length() > 3).collect(Collectors.toList());
filteredList.forEach(System.out::println);以上代碼使用了Stream流,通過filter()方法對集合中的元素進行篩選,並使用collect()方法將符合條件的元素收集到一個List中,最後使用forEach()方法列印出來。
三、Optional類
Java 8新增了一個Optional類,該類用於解決有可能出現空指針異常的問題。它可以將類型安全地包裝在內部,提供了許多有用的方法,包括isPresent()、orElse()、orElseGet()等。
Optional<String> optional = Optional.of("hello");
String str = optional.orElse("world");
System.out.println(str);以上代碼中使用Optional.of()方法將一個非空字元串包裝起來,並通過orElse()方法,在optional為空時返回一個指定的默認值。
四、日期時間 API
Java 8增強了其日期時間相關API,提供了更好的API支持,並增加了新的Date-Time API。新API提供了新的日期時間類型LocalDate、LocalTime、LocalDateTime、ZonedDateTime等。
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formatDateTime = now.format(formatter);
System.out.println(formatDateTime);以上代碼使用了LocalDateTime和DateTimeFormatter類,將當前的時間按照指定格式輸出。
五、介面的默認方法和靜態方法
Java 8中可以為介面添加默認方法和靜態方法,這為介面提供了更多的靈活性。默認方法可以被實現類重寫,而靜態方法必須由介面名稱進行調用。
interface MyInterface {
default void defaultMethod() {
System.out.println("defaultMethod");
}
static void staticMethod() {
System.out.println("staticMethod");
}
}
class MyClass implements MyInterface {
public static void main(String[] args) {
MyInterface.staticMethod();
MyClass myClass = new MyClass();
myClass.defaultMethod();
}
}以上代碼中,MyInterface介面中定義了一個默認方法和一個靜態方法,MyClass實現了MyInterface介面並對默認方法進行了重寫。同時,通過MyInterface.staticMethod()調用介面中的靜態方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238524.html
微信掃一掃
支付寶掃一掃