假设T为类类型参数,为什么不能使用T.class

我正在编写一个下载页面的功能,并根据传递的类进行解析.
对于解析,我使用另一个函数,其签名是:ParSEObject :: parse(Class< T> classname)

<T> void downloadParse(){
  ParSEObject obj;
  obj.parse(T.class); //<--- why compiler error here?? (whereas something like integer.class is allowed)
}

解决方法

Java泛型是通过 type erasure实现的.它们只能用于编译时检查.编译完成后,对象将被更改为最低的公共对象. (在这种情况下为Object.class).

编译的字节码不知道T是什么.

如果您想访问该类,则需要将方法更改为:

<T> void downloadParse(Class<T> cls){
  ParserObject obj;
  obj.parse(cls);
}

Java类型参数的类名称?的更多相关文章

  1. swift 字符串创建类

    先看个OC的swift

  2. python类名和类方法cls修改类变量的值

    这篇文章主要介绍了python类名和类方法cls修改类变量的值,通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 变量,下文更多的相关介绍需要的小伙伴可任意参考一下

  3. 如何在Windows中使用golang清除控制台?

    我尝试了很多方法,比如和并且转义序列也不起作用所有你需要的是:

  4. 在PHP中哪个更好?用’@’抑制警告或用isset()运行额外的检查?

    例如,如果我实现一些简单的对象缓存,哪个方法更快?我读了某个地方@需要大量时间执行,特别是当警告/通知实际上被发出和被禁止的时候.isset()另一方面意味着额外的哈希查找.那么哪个更好,为什么?

  5. 正则表达式及其在python上的应用

    今天学习了一早上正则表达式。另外关于python的正则表达式,主要使用re模块。我们以任务为导向介绍python正则表达式的用法。正确的代码如下:结果为:这里python的命名组与以往的不一样,使用的是(?我添加一个括号试试还是不对,前面的“Ihavea”根本没有匹配正确的写法是应该使用无捕获分组参考:正则表达式-python-无捕获分组与分支选择

  6. 如何在PHPUnit中跳过/标记不完整的整个测试套件?

    描述我有一个TestSuite,我需要标记为跳过(整个测试套件–不是套件中的具体测试用例).正如你可以看到,抛出PHPUnit_Framework_SkippedTestError异常不起作用.它不被PHPUnit捕获,并且将任何未捕获的异常中断执行(这是可以理解的,因为在实际运行测试之前,在构建测试层次结构时调用了suite()方法).我看到一个名为PHPUnit_Framework_Skipp

  7. ecshop ajax请求验证captcha(验证码)

    Ecshop内置了强大的验证码机制,我们只要调用cls_captcha.PHP这个验证码就可以。说明一点,当我们使用自己定义的PHP文件时,我们最好加上IN_ECS为ture的设置,否则可能抛出Hacker攻击的错误,下面给出ajax请求验证代码

  8. angularjs – 如何测试一个元素是否有类使用量角器?

    我正在尝试量角器e2e测试角应用程序,没有想出如何检测一个元素是否有一个特定的类。在我的情况下,测试点击提交按钮,现在我想知道如果form[name=“getoffer”]有类.ngDirty。什么可能是解决方案?一个你必须注意使用tomatch(),如在接受的答案,是部分匹配。toMatch,即使元素有不正确的类,它也会返回true。

  9. java – 确定Class对象是否是抽象类的实例

    我正在尝试确定泛型类对象是否是抽象类的实例.到目前为止,我没有太多运气.下面是我正在尝试使用的代码.AbstractActivity是我扩展我的一些活动的父类的名称.解决方法我会尝试:

  10. Java类型参数的类名称?

    假设T为类类型参数,为什么不能使用T.class我正在编写一个下载页面的功能,并根据传递的类进行解析.对于解析,我使用另一个函数,其签名是:ParSEObject::parse解决方法Java泛型是通过typeerasure实现的.它们只能用于编译时检查.编译完成后,对象将被更改为最低的公共对象..编译的字节码不知道T是什么.如果您想访问该类,则需要将方法更改为:

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部