У вас не может быть конкретного вторичного конструктора, в то время как первичный имеет универсальный параметр c.
Однако вы можете добиться того же эффекта с помощью небольшого трюка, используя operator fun invoke()
on Blah
:
class Blah<T : Furniture>(data: T) {
companion object {
operator fun invoke(): Blah<Furniture.Table> = Blah(Furniture.Table)
}
}
Или вы можете использовать fun
с именем Blah
(спасибо @AlexeyRomanov):
fun Blah(): Blah<Furniture.Table> = Blah(Furniture.Table)
Теперь вы можете успешно позвонить:
var blah = Blah(Furniture.Table)
// Calls the invoke operator fun which invokes the primary constructor.
var equalBlah = Blah()