以下代码

Supplier<String> newString = String::new;
System.out.println(newString.get());
// prints an empty string (nothing) to the console and then a newline character


以及供应商获取方法的定义

T get()


get方法应该返回T,但是构造函数没有返回类型,那么为什么可以将String :: new分配给Supplier ?

最佳答案

如您所见,调用构造函数(new)将创建一个对象,并对其进行“ return s”。

Object object = new Object();


→如果构造函数不返回任何内容,则此代码为假...

但事实并非如此。

因此,下面的示例是可以的

new Thread(new Runnable() {
  @Override public void run() {
    System.out.print("it runs.");
  }
}).start();

10-07 13:20
查看更多