相关疑难解决方法(0)

Java 8 lambda Void参数

假设我在Java 8中有以下功能接口:

interface Action<T, U> {
   U execute(T t);
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我需要一个没有参数或返回类型的操作.所以我写这样的东西:

Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Run Code Online (Sandbox Code Playgroud)

但是,它给了我编译错误,我需要把它写成

Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Run Code Online (Sandbox Code Playgroud)

这很难看.有没有办法摆脱Void类型参数?

java lambda void java-8

165
推荐指数
7
解决办法
14万
查看次数

On Void返回类型

如果需要返回一个VoidJavadoc描述为的类型

一个类,它是一个不可实例化的占位符类,用于保存对表示Java关键字void的Class对象的引用.

为什么以下仍需要null退回?

public Void blah() {
    return null; // It seems to always want null
}
Run Code Online (Sandbox Code Playgroud)

java void

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

标签 统计

java ×2

void ×2

java-8 ×1

lambda ×1