1

匿名类是这样的:

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

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

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

4

3 回答 3

4

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

  • 多次执行相同的代码块。
  • 克隆匿名类的实例。
于 2013-07-09T18:50:34.613 回答
2

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

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

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

于 2013-07-09T18:52:04.397 回答
1

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

于 2013-07-09T18:53:35.397 回答