像这样的代码
public class LambdaTest {
public static void main(String[] args) {
final Animal animal = Dog::new;
animal.eat();
}
}
@FunctionalInterface
interface Animal {
void eat();
}
class Dog implements Animal {
public Dog() {
System.out.println("dog init.");
}
@Override
public void eat() {
System.out.println("dog eat");
}
Run Code Online (Sandbox Code Playgroud)
当我运行这段代码时,“dog init”。被打印到控制台,但“dog eat”却没有。这是为什么?有人能告诉我原因吗?
我预计会打印“dog init”和“dog eat”,但只打印了“dog init”。另外,我很困惑为什么在Animal animal = Dog::new;.