目录
常见场景
demo
传统 Java 的写法显得冗长难懂,而新的 Optional<T>
+Lambda 则清新脱俗
常见场景
demo
package com.nio4444.demo.java8;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class MethodRefDemo {
public static void main(String[] args) {
Supplier<Person> personSupplier = Person::new ;
Person p1 = new Person(1,"q1",0);
Person p2 = personSupplier.get() ;
System.out.println(p1.getName());
System.out.println(p2.getName());
Optional<Person> p = Optional.ofNullable(p1) ;
String result = p.map(p3->p3.getName())
.map(name->name.toUpperCase())
.orElse(null) ;
System.out.println(result);
p = Optional.ofNullable(p2) ;
String result2 = p.map(p3->p3.getName())
.map(name->name.toUpperCase())
.orElse(null) ;
System.out.println(result2);
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
class Person implements Serializable {
private int age ;
private String name ;
private int mark ;
public static Person create(final Supplier<Person> s) {
return s.get() ;
}
}