先上java代码:

public class TUtil {

public static T getT(Object o, int i) {

try {

return ((Class) ((ParameterizedType) (o.getClass()

.getGenericSuperclass())).getActualTypeArguments()[i])

.newInstance();

} catch (InstantiationException e) {

} catch (IllegalAccessException e) {

} catch (ClassCastException e) {

}

return null;

}

}

//调用者只需要:

public abstract class BaseMVPActivity

···省略代码····

mPresenter = TUtil.getT(this, 0);

mModel = TUtil.getT(this, 1);

···省略代码····

我尝试使用kotlin去写这个util类:

class KClassUtil {

companion object {

inline fun getKType(K: Any,position:Int):T {

var parameterizedType = K::class.java.genericSuperclass as ParameterizedType

var actualTypeArguments = parameterizedType.actualTypeArguments

return ( actualTypeArguments[position].javaClass as Class).newInstance()

}

}

}

//调用者只需要:

abstract class BaseMVPActivity, E : BaseModel> : BaseActivity()

···省略代码····

mPresenter = KClassUtil.getKType(this, 0) //这里报错了

mModel = KClassUtil.getKType(this, 1) //这里报错了

···省略代码····

Cannot use 'T' as reified type parameter. Use a class instead.

这里kotlin中一定要我写入具体的Class,但由于这里是抽象类无法知道具体的class是什么,请问如何解决这个问题?

kotlin 反射java类_关于Kotlin反射中实例化类的问题相关推荐

  1. php实例化类的方法,在PHP中实例化类实例的不同方法

    不能更好地阐明这个问题的道歉.我已经尝试过一些简单的测试,并且无法解决这些问题.无论如何,我想知道以下两个例子之间存在什么差异(如果有的话): class foo { public function ...

  2. C# - 类_使用新成员隐藏基类成员

    1 using System; 2 3 namespace 类_使用新成员隐藏基类成员 4 { 5 // 基类 : Animal 6 public class Animal 7 { 8 // 基类的普 ...

  3. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  4. 五脏六腑在脸上的反射区图片_面部五脏反射穴位图

    t是什么人的脸部穴位图足面部排毒醒肤术,即脸部刮痧美容法,是根据刮痧治病的原理派生出来的一种新颖疗肤法.穴位名称筋缩所属经络督脉穴位位置背部后正中线,第九胸椎棘突下凹陷解决情志方面的疾病说明八会穴中的 ...

  5. java中定义类的关键字是_java中定义类的关键字是什么?

    java中定义类的关键字是:"class".在Java中定义一个类,需要使用"class"关键字.一个自定义的类名和一对表示程序体的大括号. 类是 Java 中 ...

  6. java 扫描类_Java扫描指定包中所有类

    1. 扫描类 import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.n ...

  7. idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键

    IDEA全称为IntelliJ IDEA,主要用于以Java语言开发为基础的集成环境,也可以用于诸如html5之类与Java Web系列相关的语言或框架开发:IntelliJ IDEA在编写代码时有一 ...

  8. php 能打印一个没有实例化的类_你理解 PHP 中的静态方法吗?

    它仍然是一个有争议的话题.让我们尝试了解原因. 函数中的静态变量 您可能已经看过以下代码: function testStatic() {static $x = 0;$x++;return $x; } ...

  9. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  10. python 新式类_【Python】Python 新式类介绍

    我们使用 Python 开发时, 会遇到 class A 和 class A(object) 的写法, 这在 Python2 里是有概念上和功能上的区别, 即经典类(旧式类)与新式类的区别, 英文上分 ...

最新文章

  1. angularjs2 html转义,详解Angular.js数据绑定时自动转义html标签及内容
  2. Ubuntu下dex2jar的安装和使用
  3. Android 64K解决办法
  4. 【Kafka】Kafka-分区数-备份数-如何设置-怎么确定-怎么修改
  5. arm开发板放张图片动起来_ARM裸机不能正确显示图片的问题
  6. Cisco端口镜像配置
  7. 火狐浏览器刷新ctrl+F5
  8. 贪心算法两船装载问题Java_贪心算法-最优装载问题
  9. 目标检测之两阶段算法--Fast R-CNN详解
  10. 年夜饭之 --- 蒜蓉粉丝蒸扇贝
  11. 基于深度卷积神经网络的农作物病害识别
  12. 多线程-Thread.join()的运用
  13. 关于百度云订阅无法正常查看订阅者分享的解决办法
  14. 数字逻辑计算机组成,数字逻辑设计与计算机组成pdf
  15. 帕德逼近matlab算法,帕德逼近算法.doc
  16. python的快车智能车牌号码识别系统的开发
  17. ENSP中PC机如何从DHCP服务器上自动获取固定的IP地址
  18. 东北师范大学计算机学院的导师李俊,东北师范大学计算机科学与信息技术学院研究生导师简介-殷明浩...
  19. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之系统参数配置日志管理
  20. 浙江省计算机c语言二级成绩,[转载]浙江省计算机二级考试C语言

热门文章

  1. 【PC工具】传说中最好的编程手册管理软件Zeal,支持194种编程文档,学习编程语法查阅必备工具...
  2. “隐私快递单”的保护理念应全面推行
  3. 【FTP】java FTPClient 文件上传内容为空,文件大小为0
  4. Hibernate之一级缓存和二级缓存
  5. Openssh学习笔记
  6. 七大排序的个人总结(一)
  7. 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
  8. 《LINUX下动态链接库的创建与应用》
  9. 他山之石:五个互联网英雄的创业启示!
  10. Object Builder Application Block (2)