以下代码
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();