Можно ли вызвать конструктор по умолчанию вместо конструктора с нулевым аргументом? - PullRequest
2 голосов
/ 05 мая 2011

У меня есть класс util, который должен вызывать метод для данного объекта Class с использованием отражения.

Сейчас он создает новые экземпляры с использованием .newInstance (), а затем вызывает метод, который я хочу протестировать..

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

Isможно вызвать конструктор по умолчанию Java для создания экземпляра вместо пользовательского конструктора с нулевым аргументом?

Ответы [ 2 ]

8 голосов
/ 05 мая 2011

У вас есть только конструктор по умолчанию, если в классе не определены конструкторы.

Конструктор без аргументов должен принимать только те зависимости, которые вы ему дали (то есть, нет), и кажется, что вы все еще можете использоватькласс без дополнительных зависимостей.

В Sun / Oracle JVM вы можете использовать Unsafe.allocateInstance(Class), который создает экземпляр без вызова конструктора, но я постараюсь сначала исправить ваш класс.

2 голосов
/ 05 мая 2011

Конструктор по умолчанию создается только тогда, когда вы сами не предоставляете конструктор.
Итак, как только в вашем классе есть хотя бы один конструктор, этот конструктор по умолчанию не создается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...