有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

匿名类是这样的:

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

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

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


共 (3) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

    • 多次执行同一代码块
    • 克隆匿名类的实例
  3. # 3 楼答案

    如果接口扩展了Cloneable,那么从技术上讲,类可以被克隆

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

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