小编voz*_*zrr的帖子

为什么它不输出“狗吃”

像这样的代码

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;.

java constructor-reference

5
推荐指数
1
解决办法
117
查看次数

标签 统计

constructor-reference ×1

java ×1