T :: class. java .newInstance () устарел - PullRequest
3 голосов
/ 10 февраля 2020
inline fun <reified T> blah(block: T.() -> Unit): Something {
    request = T::class.java.newInstance()

, что newInstance () устарела, обычно когда вы go обращаетесь к источнику, он говорит, почему он устарел и какова альтернатива, но на этот раз я вижу только:

/** @deprecated */
@CallerSensitive
@Deprecated(
    since = "9"
)
public T newInstance() throws InstantiationException, IllegalAccessException {
    // ...
}

Что представляет собой новый не осуждаемый способ создания экземпляра типа reified в Kotlin?

Обновление: дополнительная информация по запросу:

JDK Version: 11 (not Android, just pure JVM)
Kotlin Version:1.3.61 

1 Ответ

3 голосов
/ 10 февраля 2020

На самом деле это происходит от самого Java. Соответствующая замена:

T::class.java.getDeclaredConstructor().newInstance()

Вы также можете проверить Class.newInstance() -Javado c, в котором также указано, что

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