简单示例
package com.grandsun.wxpay.java8NewFeature;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class OptionalTest {
@Test
public void demo01(){
Optional<Integer> optional = Optional.of(10);
System.out.println(optional);
System.out.println(optional.get());
try {
Optional<Object> optional1 = Optional.of(null);
System.out.println(optional1);
}catch (Exception e){
e.printStackTrace();
}
}
@Test
public void demo02(){
Optional<Integer> optional = Optional.ofNullable(20);
System.out.println(optional);
System.out.println(optional.get());
Optional<Object> optional1 = Optional.ofNullable(null);
System.out.println(optional1);
try {
System.out.println(optional1.get());
}catch (Exception e){
e.printStackTrace();
}
}
@Test
public void demo03(){
Optional<Object> optional = Optional.empty();
System.out.println(optional);
}
@Test
public void demo04(){
Optional.ofNullable("hello world").ifPresent(System.out::println);
Optional.ofNullable(null).ifPresent(System.out::println);
Optional<String> optional = Optional.ofNullable("how are you");
System.out.println(optional.get());
System.out.println(optional.isPresent());
}
@Test
public void demo05(){
Optional.ofNullable(null).ifPresent(System.out::println);
Optional.ofNullable("hi").ifPresent(System.out::println);
}
@Test
public void demo06(){
Optional<Object> optional = Optional.ofNullable(null);
Optional<Object> optional1 = Optional.ofNullable("hello");
String val = (String) optional.orElse("默认值");
String val2 = (String) optional1.orElse("默认值");
System.out.println(val);
System.out.println(val2);
}
@Test
public void demo07(){
Integer num = Optional.ofNullable(10).orElseGet(()->-1);
System.out.println(num);
Integer num2 = (Integer) Optional.ofNullable(null).orElseGet(()->-2);
System.out.println(num2);
}
@Test
public void demo08(){
Integer num = Optional.ofNullable(10).orElseThrow(()->new ArithmeticException());
System.out.println(num);
Integer num2 = (Integer) Optional.ofNullable(null).orElseThrow(()->new ArithmeticException());
System.out.println(num2);
}
@Test
public void demo09(){
List<String> list = new ArrayList<String>(){
{
add("aa");
add("bb");
add("cc");
add(null);
add("ee");
add("ff");
add("GG");
add(null);
add("ll");
}
};
List<String> list1 = list.stream().map(temp -> Optional.ofNullable(temp).map(n -> n.toUpperCase()).orElse("空值")).collect(Collectors.toList());
list1.stream().forEach(System.out::println);
System.out.println("---------------------");
list.stream().forEach(temp->System.out.println(Optional.ofNullable(temp).map(n->n.toUpperCase()).orElse("空值")));
}
@Test
public void demo10(){
List<String> list = new ArrayList<String>(){
{
add("hi, how are you");
add("same as always");
add("hello");
}
};
List<Optional<String>> list1 = list.stream().map(item -> Optional.ofNullable(item).filter(val -> val.length() > 5)).collect(Collectors.toList());
list1.stream().forEach(System.out::println);
}
}