【发布时间】:2021-10-02 00:56:10
【问题描述】:
我正在使用this,但是当我尝试下面的 IDE 状态时"
不能从静态上下文中引用非静态方法"
Optional.isPresent() 不是 static 方法吗?
public interface SubscriberRepo extends JpaRepository<Subscriber,Long> {
Stream<Subscriber> findAllByShortName(String shortName);
}
public int exists(Subscriber subscriber) {
try (Stream<Subscriber> subscriber1_ = subRepo.findAllByShortName(subscriber.getShortName().trim().toUpperCase(LocaleContextHolder.getLocale()))) {
List<Subscriber> subscribers = subscriber1_
.filter(Optional::isPresent)
.map(Optional::get)
.filter(s -> subscriber.getEnabled())
.filter(s -> !subscriber.getLocked())
.collect(Collectors.toList());
}
}
下面是我尝试的另一种方法,只返回 List<Subscriber>,但我似乎无法“获取”Subscribers,因为错误是:
必填类型
List<Subscriber>提供List<List<Subscriber>>
如何安全地获取订阅者并将它们单独过滤到列表中?
List<Subscriber> subscriber1 = subRepo.findAllByShortName(subscriber.getShortName().trim().toUpperCase(LocaleContextHolder.getLocale()));
List<Subscriber> subscriber1_ = Stream.of(subscriber1)
.filter(s-> subscriber.getEnabled())
.filter(s-> !subscriber.getLocked())
.collect(Collectors.toList());
【问题讨论】:
-
Optional.isPresent()不是静态的。 docs.oracle.com/javase/8/docs/api/java/util/Optional.html 尝试将其替换为x->x.isPresent()
标签: java spring java-8 spring-data-jpa optional