Есть ли ссылки на конструкторы в Котлине?

103

В Java у нас есть Class::newсинтаксис для ссылок на конструкторы. Я знаю, есть вызываемые ссылки на методы, но как насчет конструкторов? Типичным вариантом использования для меня были бы фабрики.

Кирилл Рахман
источник

Ответы:

142

Вы можете получить экземпляр функции для конструктора, просто используя ::ClassName, как если бы это была фабричная функция.

Илья Рыженков
источник
26
Весьма признателен. Idk, если это кому-то поможет, но для этого с классами Sealed сделайте:SealedClass::SubClass
aProperFox
А как насчет ссылок на вторичные конструкторы?
Трэвис Уэлл,
@TravisWell, что было бы эквивалентом в Java? AFAIK вы не можете ссылаться на конкретный конструктор в Java. Компилятор автоматически определяет, на какой конструктор ссылаться (через Class :: new) по предполагаемым (или явным) типам аргументов
Андрей