【发布时间】:2016-11-23 21:23:11
【问题描述】:
考虑以下示例代码。此代码使用 Eclipse 的 @NonNull 和 @Nullable 注释来检查 nulls。不幸的是,Eclipse 在map(toNonNull) 行标记了一个错误。
import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import one.util.streamex.StreamEx;
Function<@NonNull Integer, @Nullable Integer> toNull;
Function<@NonNull Integer, @NonNull Integer> toNonNull;
toNull = value -> value;
toNonNull = value -> value;
StreamEx.
of(1, 2, 3, 4, 5, 6).
map(toNull).
nonNull().
map(toNonNull). // Error is here
count();
这是错误信息:
空类型不匹配(类型注释):必需 '功能' 但是这个表达式有类型 '函数'
我想在StreamEx 的nonNull()(或更准确地说是AbstractStreamEx 的nonNull())上创建一个Eclipse 外部注释,以便Eclipse 知道流中的值不能为空。
这里是 Eclipse 外部注释的开始。
class one/util/streamex/AbstractStreamEx<TS>
nonNull
()TS;
()???;
??? 我要写什么?
【问题讨论】:
标签: java eclipse streamex external-annotations