【问题标题】:How to create an anonymous class using a method that returns a reference to a class如何使用返回类引用的方法创建匿名类
【发布时间】:2019-06-24 21:20:19
【问题描述】:

我想使用返回类实例的方法创建一个匿名类

class FirstClass {
    public FirstClass() {
        System.out.println("First class created");
    }
}

class SecondClass {
    public SecondClass() {
        System.out.println("Second class created");
    }
    public FirstClass getFirstClass() {
        return new FirstClass();
    }
}

public class Ex1 {
    public FirstClass getFirstClass() {
        return new FirstClass();
    }
    public static void main(String[] args) {
        //here is the problem
        Object obj = new SecondClass().getFirstClass() {
            {
                System.out.println("Anonymous class created");
            }
        };
    }
}

我希望程序通过创建匿名类来工作,但它给了我一个语法错误。接受任何解决方案或变通方法。谢谢

【问题讨论】:

  • stackoverflow.com/questions/355167/… 你误解了什么是匿名类
  • 我有一个任务,这就是条件
  • 你不能子类化一个类的instance。这是对什么是子类的误解。
  • 您显然没有阅读老师的说明,也没有阅读我提供的链接。
  • 我需要使用匿名类并从对类的引用中创建它——这就是任务

标签: java anonymous-class


【解决方案1】:

您不能根据方法的返回值创建匿名类。匿名类只能在创建对象时创建,也就是说,它只能使用构造函数来创建。

最好的办法是直接创建FirstClass,然后覆盖初始化器,如下所示:

new FirstClass() {
    {
        System.out.println("This is from inside anon!");
    }
};

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2010-09-08
    • 1970-01-01
    • 2012-04-30
    • 2020-03-14
    • 2012-05-18
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多