Вы должны изменить dataDecrypt
следующим образом:
inline fun <reified T> dataDecrypt(password: String, data: String): T? {
...
try {
...
if (!deString.isEmpty()){
...
return Gson().fromJson(deString, T::class.java)
}
...
}
}
И на сайте вызовов тип T
будет выведен из result
:
override val result:T
get() = RSAUtil.dataDecrypt(RSAUtil.getKeyPassword(), data)!!
Вы можетеУзнайте больше о встроенных функциях и типах reified здесь , и я настоятельно рекомендую это сделать.Я также хотел бы отметить, что ваш код плохо отформатирован, рекомендуется использовать ?:
вместо !!
в проверках обнуляемости , а сопутствующие объекты не рекомендуется использовать в Kotlin, вы можете определять функции вне классаи использовать (или импортировать) их, как если бы они были статичными.