inlinefun<reified T> Gson.fromJson(json: String): T {
returnfromJson(json, T::class.java)}
reified只能修饰函数,不能修饰类,可以重载类的构造方法,使其具有真泛型的属性
class View<T>(privateval clazz: Class<T>){
val presenter: T by lazy {
clazz.newInstance()}//伴生对象会在类放入类加载器中时执行。在类构造方法执行前。companionobject{
//重载构造函数inlineoperatorfun<reified T>invoke()=View(T::class.java)}}class Presenter
funtest2(){
val p = View<Presenter>().presenter
}