有问题的班级是这个。如您所见,这非常简单。只是为了了解匿名内部类的工作原理。在这种情况下,我收到4条错误消息,提示找不到WaterLevel和ChlorineLevel符号。您能知道这有什么问题吗?

public class Pool {
    public WaterLevel level() {
        return new WaterLevel() {
            private String level = "empty";
            public String litresToFull() { return "3000"; }
        };
    }

    public ChlorineLevel chlorine(final int amt){
        return new ChlorineLevel() {
            private int level = amt;
            int addChlorine() { level += amt; return level; }
        };
    }
}

最佳答案

罗希特·贾恩(Rohit Jain)说


是的,但是那些匿名内部类实际上分别是WaterLevel和ChlorineLevel的子类。您必须拥有这些课程。


这使我意识到,我必须为我使用的每个匿名内部类定义一个接口。只是想发布此内容,以便很明显地解决了该问题。

关于java - Java中的匿名内部类不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22293573/

10-10 20:10