小编Nac*_*haz的帖子

使用java8方法引用的Nullcheck方法可能吗?

由于丰富的分析,我们的Java代码混杂了可以为空的对象的方法结果的输出.

看起来像这样

namedObject == null ? "?" : namedObject.getName()
Run Code Online (Sandbox Code Playgroud)

是否可以为此编写静态方法?(例如看起来像这样):

Util.nvl( namedObject, NamedObject::getName, "?" )
Run Code Online (Sandbox Code Playgroud)

什么会= Util.nvl看起来像?我已经尝试了一些搜索谷歌,但没有产生任何结果.

这不起作用:

public static <T> T nvl(T value, Function<T, ?> method, T nullSubstition) {
    return value == null ? nullSubstition : (T) method.apply(value);
}
Run Code Online (Sandbox Code Playgroud)

编译器告诉我:非静态方法getName()不能从静态上下文中引用

java java-8 method-reference

6
推荐指数
2
解决办法
1559
查看次数

标签 统计

java ×1

java-8 ×1

method-reference ×1