小编Dav*_*vid的帖子

Lambda表达式和Optional如何返回String值

我想获得一个Optional值,我有这样的东西:

Optional<String> value =

Optional.ofNullable(MyObject.getPeople())
    .ifPresent(people -> people                                                                    
        .stream()                                                                    
        .filter(person -> person.getName().equals("test1"))
        .findFirst()
        .map(person -> person.getId()));
Run Code Online (Sandbox Code Playgroud)

person.getId()应该返回一个字符串,我试过这个但它不起作用,得到不兼容的类型:void无法转换为java.util.Optional

Optional<String> value =

Optional.ofNullable(MyObject.getPeople())
    .ifPresent(people -> people                                                                    
        .stream()                                                                    
        .filter(person -> person.getName().equals("test1"))
        .findFirst()
        .map(person -> person.getId()))
        .orElse(null);
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢

java collections lambda java-8 java-stream

4
推荐指数
1
解决办法
993
查看次数

ImmutableList.of正在工作,但突然停止工作

我有以下代码.不确定发生了什么,但它工作到1小时前我没有改变任何东西,现在它没有工作.

private final List<People> people;
private List<People> friend;

method() {
    friend= ImmutableList.of(people);
}
Run Code Online (Sandbox Code Playgroud)

我尝试编译时收到此错误消息:

incompatible types: inference variable E has incompatible bounds

[ERROR]     equality constraints: com.app.People
[ERROR]     lower bounds: java.util.List<com.app.People>
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢

java immutability

1
推荐指数
1
解决办法
98
查看次数

Java 8 Lambda - 流过滤器更改值

我需要更改从过滤器获得的值

.stream()
.filter(profile -> profile.getValue().equals("test"))
.findFirst()
.map(profile -> profile.setProperty(true))
Run Code Online (Sandbox Code Playgroud)

我收到不兼容的类型:推断的类型不符合上限,谢谢

java lambda

0
推荐指数
1
解决办法
6785
查看次数

标签 统计

java ×3

lambda ×2

collections ×1

immutability ×1

java-8 ×1

java-stream ×1