一个匿名类可以拥有多少个实例?

时间:2013-07-09 18:48:30

标签: java anonymous-class

匿名类是这样的:

  SenseOfLife _42 = new SenseOfLife() {
    public int eval() {
       return 42;
    }
  };

我不明白为什么这样一个匿名类可以拥有无​​限数量的实例(这是一个命题)。

当我定义这个匿名类时,它会自动创建一个实例并将其分配给变量_42。所以我只有一个实例,无法创建新实例。

3 个答案:

答案 0 :(得分:4)

您可以通过以下方式创建多个实例:

  • 多次执行相同的代码块。
  • 克隆匿名类的实例。

答案 1 :(得分:2)

如果接口扩展Cloneable,则可以在技术上克隆该类。

反射可以得到一个新实例。

如果在循环中调用相同的new SenseOfLife()构造函数,构造函数将被编译为一个多次实例化的类。

答案 2 :(得分:1)

我没有尝试过,但很可能你可以使用反射创建其他实例,即instance.getClass().newInstance()

相关问题