Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpRfCt 130 of 322 menu
◀ ▶

Конструкторы в Java

Создание объекта средствами рефлексии начинается с поиска нужного конструктора. Его описание имеет тип Constructor: там перечислены типы параметров и модификатор доступа.

Метод getDeclaredConstructors возвращает все конструкторы, объявленные в классе, включая закрытые:

class Crate { private final String tag; Crate(String tag) { this.tag = tag; } private Crate() { this.tag = "empty"; } } public class Main { public static void main(String[] args) { for (var ctor : Crate.class.getDeclaredConstructors()) { System.out.println(ctor.getParameterCount()); } } }

Метод getConstructors показывает только открытые конструкторы. Для класса с одним публичным конструктором и одним закрытым длины списков будут различаться:

class Crate { public Crate(String tag) {} private Crate() {} } public class Main { public static void main(String[] args) { System.out.println(Crate.class.getConstructors().length); System.out.println(Crate.class.getDeclaredConstructors().length); } }

Конкретный конструктор можно взять по типам параметров методом getDeclaredConstructor. Если подходящего варианта нет, будет выброшено исключение NoSuchMethodException:

class Crate { private final String tag; Crate(String tag) { this.tag = tag; } } public class Main { public static void main(String[] args) throws Exception { var ctor = Crate.class.getDeclaredConstructor(String.class); System.out.println(ctor.getName()); } }

Класс Pairing имеет конструктор с двумя целыми параметрами. Получите его и выведите число параметров методом getParameterCount.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить