当前位置: 首页 > 面试题库 >

怎么做`MyClassJava中的.class`?

孔权
2023-03-14
问题内容

在无法实例化或扩展MyClass的地方如何public <T> T doit(Class<T> clazz);使用MyClass<String>.classclazz进行调用。

编辑:“ David Winslow”和“ bmargulies”响应是(MyClass<String>) doit(MyClass.class);原始问题的正确作品,但令人惊讶的是,该方法返回MyClass<T>而不是T强制类型转换时将不再编译。

编辑:我已经用MyClass替换列表,并将条件添加到我原来的问题。


问题答案:

使用List.class。因为类型擦除类型参数的Java类是完全编译时结构-
即使List<String>.class是有效的语法,这将是 完全一样的类
List<Date>.class,等等。由于反射本质上是一个运行时的东西,它不处理好类型参数(用Java实现)。

如果要使用Class对象(例如)实例化新的List实例,则可以 将该操作 的结果 强制转换 为具有适当的type参数。

List<String> list = (List<String>)(ArrayList.class.newInstance());


 类似资料:
  • 我有一个字符串a的列表,并试图找到a的所有元素a按照某种规则与a的另一个元素b匹配,然后创建一个,其中包含所有的a->所有匹配的b。 详细内容: 对于a中的每个a,使用谓词P将其与a中的每个b进行比较。 如果P(a,b)匹配,则从a和b生成一对(x,y)。 将所有对按x分组,并以映射形式返回。 这种方法的问题是,我首先需要构造一个庞大的对列表,如果我的数据集只有几百万字,那么它可能会耗尽内存。

  • 本文向大家介绍特征选择怎么做相关面试题,主要包含被问及特征选择怎么做时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解。 常见的特征选择方式: 1)、去除方差较小的特征 2)、正则化。L1正则化能够生成稀疏的模型。L2正则化的表现更加稳定,由于有用的特征

  • 本文向大家介绍Word2Vec中skip-gram是什么,Negative Sampling怎么做相关面试题,主要包含被问及Word2Vec中skip-gram是什么,Negative Sampling怎么做时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Word2Vec通过学习文本然后用词向量的方式表征词的语义信息,然后使得语义相似的单词在嵌入式空间中的距离很近。而在Word2Vec模型

  • 本文向大家介绍你在做项目中有做过压力测试吗,怎么做相关面试题,主要包含被问及你在做项目中有做过压力测试吗,怎么做时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、首先对要测试的系统进行分析,明确需要对那一部分做压力测试,比如秒杀,支付 2、如何对这些测试点进行施压 第一种方式可以通过写脚本产生压力机器人对服务器进行发包收报操作 第二点借助一些压力测试工具比如Jmeter,LoadRunn

  • 本文向大家介绍vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?相关面试题,主要包含被问及vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?时的应答技巧和注意事项,需要的朋友参考一下 可以通过指令去做 Vue.directive('hasPermission', { bind(el, binding, vnode) { const permissions = vnode.con

  • 本文向大家介绍xgboost特征并行化怎么做的?相关面试题,主要包含被问及xgboost特征并行化怎么做的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 决策树的学习最耗时的一个步骤就是对特征值进行排序,在进行节点分裂时需要计算每个特征的增益,最终选增益大的特征做分裂,各个特征的增益计算就可开启多线程进行。而且可以采用并行化的近似直方图算法进行节点分裂。