这可能是一个有点愚蠢的问题,但我对Lamda Expressions和General编程很新。
在尝试使用Lambda Expression之后:
interface Starter {
public void start();
}
class Machine {
public void run( Starter s ) {
System.out.println("Running code....");
s.start();
}
}
public static void main(String[] args){
Machine mac1 = new Machine();
mac1.run(() -> System.out.println("Hello World"));
}
这让我想知道,如果界面和类(本例中的机器)可以移动到单独的文件中,这仍然有用吗?我尝试过这样做我认为它会起作用,但这不起作用,这可能吗?如果是这样,你怎么做?
答案 0 :(得分:1)
只要您的主类可以看到Machine类和Starter接口,那么这是完全可能的。
我的猜测是你将Starter接口移动到了另一个包而不是主类,并且因为你没有包含“public”修饰符,所以它不再对主类可见并且将拒绝编译。
答案 1 :(得分:0)
如果我理解您的问题是正确的,那么只需添加一个单独的类(例如App.class
),其中包含public static void main
方法:
public interface Starter {
public void start();
}
public class Machine {
public void run( Starter s ) {
System.out.println("Running code....");
s.start();
}
}
public class App {
public static void main(String[] args){
Machine mac1 = new Machine();
mac1.run(() -> System.out.println("Hello World"));
}
}