mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
!455 新增了 flattedMap
函数,增强了对原生Optional
的适配;新增了set
函数,允许静态方式/链式获取一个新的Opt
Merge pull request !455 from 阿超/v5-dev
This commit is contained in:
@@ -8,6 +8,8 @@ import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
/**
|
||||
@@ -126,6 +128,24 @@ public class OptTest {
|
||||
Assert.assertNull(exceptionWithMessage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void flattedMapTest() {
|
||||
// 和Optional兼容的flatMap
|
||||
List<User> userList = new ArrayList<>();
|
||||
// 以前,不兼容
|
||||
// Opt.ofNullable(userList).map(List::stream).flatMap(Stream::findFirst);
|
||||
// 现在,兼容
|
||||
User user = Opt.ofNullable(userList).map(List::stream).flattedMap(Stream::findFirst).orElseGet(User.builder()::build);
|
||||
System.out.println(user);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTest() {
|
||||
// 我一直在想,既然有get,为什么不能有set呢?
|
||||
Opt.ofNullable(User.builder().username("ruben").build()).peek(System.out::println)
|
||||
.set(User.builder().username("hutool").build()).peek(System.out::println);
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
|
Reference in New Issue
Block a user