2013-07-09 2 views
1

Анонимный класс что-то вроде этого:Сколько экземпляров может иметь анонимный класс?

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

Я не понимаю, почему такой анонимный класс может иметь неограниченное количество экземпляров (это предложение).

Пока я определяю этот анонимный класс, он автоматически создает экземпляр и присваивает его переменной _42. Поэтому у меня есть только один экземпляр и я не могу создать новый экземпляр.

+3

В чем вопрос? –

+0

Пожалуйста, перефразируйте это вопросом в теле вопроса ... (не только заголовок.) – BlackVegetable

+0

ответ только один, в вашем коде .. или в цикле for n раз – nachokk

ответ

4

Вы можете создать несколько экземпляров по:

  • Выполнение того же блока кода больше, чем один раз.
  • Клонирование экземпляра анонимного класса.
+0

И, отражение? Не могли бы вы добавить его в свой пост? – hexafraction

2

Если интерфейс расширяет Cloneable, класс может быть технически клонирован.

Отражение может получить новый экземпляр.

Если тот же самый конструктор new SenseOfLife() вызывается в цикле, то конструктор будет скомпилирован до одного класса, который создается несколько раз.

1

Я не пробовал, но, скорее всего, вы можете создавать другие экземпляры с использованием отражения, т. Е. instance.getClass().newInstance().

Смежные вопросы