.htaccess
在上述使用Java 8的示例中,ThreadStatus()返回一个字符串,但Runnable接口“ run()”方法未返回任何值。但它仍然有效(无编译/运行时错误)。我想知道它是如何工作的,因为根据lamba规范,SAM应该具有完全相同的签名。
如果我翻转了ThreadStatus方法不返回任何值的情况,并更改了Functional接口方法以返回值,则会出现编译时错误。
有人可以帮我理解吗?
答案 0 :(得分:4)
这是因为Thread t1 = new Thread(() -> ThreadStatus());
等效于:
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
ThreadStatus();
}
});
因此您不会从run()
返回任何内容。只需指示run()
调用ThreadStatus()
方法并忽略返回值即可。