学习到多线程的实现方式时,其中之一是实现Runnable,代码如下:
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("thread 1 running");
}
}).start();
由于Runnable接口中仅含有一个方法,可以将代码进一步简化:
new Thread(()->{
System.out.println("thread 2 running");
}).start();
当然,这种实现方式仅仅在接口中仅有一个方法,方可,否则报错,代码如下:
public class Test {
interface InterfaceSample{
void show();
//void test();//两个方法以下参数传递出错
}
public void testInterfaceSample( InterfaceSample func) {
func.show();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test().testInterfaceSample(()->{
System.out.println("hello word");
});
}
}
具体为什么这么写,才疏学浅,欢迎大佬赐教