Чтобы создать его экземпляр, вы можете вызвать newInstance()
для класса Java, при условии, что у него есть конструктор с нулевым аргументом:
inline fun < reified T : TickerEntity> getStockBuySell() {
val tickerEntity : T = T::class.java.newInstance()
// ...
}
Это не удастся, если у класса нет конструктор с нулевым аргументом.
Вы можете рассмотреть возможность использования конструктора в качестве аргумента вашей функции.
fun <T : TickerEntity> getStockBuySell(entityConstructor: () -> T) {
val tickerEntity : T = entityConstructor()
// ...
}
// Usage:
getStockBuySell(::MyTickerEntityImplementationClass)
При использовании выше все еще требуется конструктор с нулевым аргументом, но если у вас есть некоторые специальная реализация, которая нуждается в аргументах, вы можете передать их через лямбду:
getStockBuySell { MyTickerEntityImplementationClass("someConstructorArgument") }