Optional类的方法

1、empty
private static void createNullOptional() {
// 创建一个空的Optional实例
// 方式一
Optional<Object> empty = Optional.empty();
System.out.println("empty = " + empty);
// 方式二
Optional<Object> empty2 = Optional.ofNullable(null);
System.out.println("empty2 = " + empty2);
}
2、of
private static void of() {
Optional<String> qiuqiu = Optional.of("qiuqiu");
System.out.println("qiuqiu = " + qiuqiu);
// 传入null将会报错
Optional<Object> optional = Optional.of(null);
System.out.println("optional = " + optional);
}
3、ofNullable
Optional<Object> empty2 = Optional.ofNullable(null);
System.out.println("empty2 = " + empty2);
4、filter
private static void filter() {
// Optional<String> optional = Optional.of("hello");
Optional<String> optional = Optional.empty();
Optional<String> result = optional.filter(item -> {
if (item.contains("o")) {
return true;
}
return false;
});
// System.out.println("result = " + result.get());
System.out.println("result = " + result);
}
5、map
private static void map() {
User user = new User("qiuqiu", 22);
Optional<User> qiuqiu = Optional.of(user);
Optional<User> optional = qiuqiu.map(item -> {
String name = item.getName();
item.setName(name.toUpperCase());
return item;
});
System.out.println("optional.get() = " + optional.get());
}
6、get
private static void get() {
Optional<Integer> optional = Optional.of(520);
Integer integer = optional.get();
System.out.println("integer = " + integer);
Optional<Object> empty = Optional.empty();
// 报错 java.util.NoSuchElementException
System.out.println("empty.get() = " + empty.get());
}
7、orElse
private static void orElse() {
Optional<Integer> optional = Optional.of(520);
Integer result = optional.orElse(1314);
System.out.println("result = " + result);
// 为空则返回默认值
Optional<Object> empty = Optional.empty();
Object orElse = empty.orElse(1314);
System.out.println("orElse = " + orElse);
}
8、orElseGet
private static void orElseGet() {
Optional<Integer> optional = Optional.of(520);
Integer result = optional.orElseGet(() -> 1214);
System.out.println("result = " + result);
// 为空则返回默认值 Supplier get()
Optional<Object> empty = Optional.empty();
Object orElseGet = empty.orElseGet(() -> 1235);
System.out.println("orElseGet = " + orElseGet);
}
9、orElseThrow
private static void orElseThrow() {
// orElseThrow() 无参
/* Optional<Integer> optional = Optional.of(520);
Integer integer = optional.orElseThrow();
System.out.println("integer = " + integer);
Optional<Object> empty = Optional.empty();
Object orElseThrow = empty.orElseThrow();
System.out.println("orElseThrow = " + orElseThrow);*/
// orElseThrow() 有参
Optional<Integer> optional2 = Optional.of(520);
Integer integer2 = optional2.orElseThrow(() -> {
throw new RuntimeException("出错啦!!!");
});
System.out.println("integer2 = " + integer2);
Optional<Object> empty2 = Optional.empty();
Object orElseThrow2 = empty2.orElseThrow(() -> {
throw new RuntimeException("出错啦!!!");
});
System.out.println("orElseThrow2 = " + orElseThrow2);
}
10、ifPersent
private static void ifPersent() {
Optional<Integer> optional = Optional.of(520);
// 值存在就执行Consumer
optional.ifPresent(item -> {
System.out.println("item = " + item);
});
// 值不存在就什么都不做
Optional<Object> empty = Optional.empty();
empty.ifPresent(item -> {
System.out.println("什么都不做!!!");
});
}
11、isPersent
public static void main(String[] args) {
Optional<Integer> optional = Optional.of(520);
// 值存在就返回true
boolean isPresent = optional.isPresent();
System.out.println("isPresent = " + isPresent);
// 值不存在就返回false
Optional<Object> empty = Optional.empty();
System.out.println("empty.isPresent() = " + empty.isPresent());
}