为什么Javac会抱怨与类的类型参数无关的泛型?

请按顺序阅读代码中的注释,那里的问题详细信息。

为什么会发生这种差异?

如果可能,请引用JLS。import java.util.*;/**

* Suppose I have a generic class

* @param  with a type argument.

*/class Generic {

// Apart from using T normally,

T paramMethod() { return null; }

// the class' interface also contains Generic Java Collections

// which are not using T, but unrelated types.

List unrelatedMethod() { return null; }}@SuppressWarnings("unused")public class Test {

// If I use the class properly (with qualified type arguments)

void properUsage() {

Generic g = new Generic();

// everything works fine.

String s = g.paramMethod();

List pos = g.unrelatedMethod();

// OK error: incompatible types: List := List

List thisShouldErrorCompile = g.unrelatedMethod();

}

// But when I use the raw type, *ALL* the generics support is gone, even the Collections'.

void rawUsage() {

// Using Generic> as the type turns fixes the warnings below.

Generic g = new Generic();

// OK error: incompatible types: String := Object

String s = g.paramMethod();

// WTF warning: unchecked conversion: List := raw List

List pos = g.unrelatedMethod();

// WTF warning: unchecked conversion: List := raw List

List thisShouldErrorCompile = g.unrelatedMethod();

}}

边注

我最初是在IntelliJ IDEA中找到这个的,但是我猜编译器与javac兼容,因为当我用下面的代码编译上面的代码时,它给出了相同的错误/警告。$ javac -version

javac 1.7.0_05$ javac Test.java -Xlint:unchecked...$ javac Test.java -Xlint:unchecked -source 1.5 -target 1.5...

java c 泛型 区别_为什么Javac会抱怨与类的类型参数无关的泛型?相关推荐

  1. c语言与java的最大区别_【干货!!】来看看java和c语言的一些大体区别

    原标题:[干货!!]来看看java和c语言的一些大体区别 对于这两门计算机语言大多数人接触的都不是很多,一般都是到了大学的时候学计算机专业的一些同学才刚接触到c语言这么课程.刚学习的时候会感到非常的陌 ...

  2. java js 正则区别_对比正则表达式在JavaScript与Java中的区别

    这篇文章主要介绍了JavaScript与Java正则表达式写法的区别介绍,需要的朋友可以参考下 Js验证写法:(转义符\) var str = "待验证文本"; var regul ...

  3. java同步异步区别_同步请求和异步请求的区别

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...

  4. ejb java bean的区别_关于ejb:Bean,Java Bean和Enterprise Java Bean之间的区别

    本问题已经有最佳答案,请猛点这里访问. 我已经阅读了关于EJB,JavaBean的文章,但是我仍然怀疑"bean"这个词本身是什么意思呢? a)纯术语"bean" ...

  5. java comp env 区别_加和不加java:comp/env/前缀有什么区别?

    java:comp/env是标准的J2EE环境查找规则 使用这种方式必须做一次环境名到JNDI名的映射 这种隔离使得在写程序时不必关注真正的JNDI名字 其实说白了跟把JNDI名放到配置文件里是一样的 ...

  6. java和netbeans区别_如果我想只使用Java中的Eclipse和Netbeans有什么区别?

    可乐和百事可乐有什么区别? 好吧,它不是真的相似,但很多的差异是在定性的方式.说到Netbeans 6.1和6.5: > Netbeans有一个非常不同的UI和工作流.没有观点,但工具栏等将自动 ...

  7. c和java内存泄漏区别_内存溢出和内存泄漏的区别(转)

    1.1内存溢出:(Out Of Memory---OOM) 系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出 例子:一个盘子用尽各种方法只能装4个果子,你 ...

  8. java 与.net区别_.net和java区别

    1..net是语言无关,java是平台无关 .net是个平台,技术平台,如果你的电脑是微软的,基本要装.net的框架,不然有些程序无法打开: java也一样,要装个虚拟机,不然系统无法识别. 但是不同 ...

  9. java https http 区别_关于HTTP和HTTPS的区别

    前言: 在URL前加https://前缀表明是用SSL加密的.你的电脑与服务器之间收发的信息传输将更加安,Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定. http和 ...

  10. java pair map区别_关于map和pair

    map&pair相关用法 tips:map是一个关联容器,而pair是一个数据的模板类型,两者其实并不属于同一类,但是放在一起,方便记忆理解 map 1,map简介 map是STL的一个关联容 ...

最新文章

  1. Java凝视Override、Deprecated、SuppressWarnings具体解释
  2. IIS部署ArcGIS JS API4.10后,字体未加载加载字体跨域
  3. 【ElasticSearch】ElasticSearch-SQL插件
  4. 蓝桥杯历届试题 剪格子 (DFS)
  5. 深度linux安装postgresql_在 Linux 上安装 PostgreSQL
  6. oracle 10g 报错:ORA-00257: archiver error. Connect internal only, until freed
  7. java下载文件夹_java如何通过共享目录下载文件夹(有子文件夹)到本地目录?...
  8. “根本就不需要 Kafka 这样的大型分布式系统!”
  9. 监督学习 | 朴素贝叶斯原理及Python实现
  10. Double类型比较大小
  11. Git使用出现git@github.com: Permission denied (publickey)
  12. codeforces#253 D - Andrey and Problem里的数学知识
  13. 乌龟Git clone失败错误码128解决办法
  14. intptr java_[转载]C#中int和IntPtr相互转换
  15. \t\tASE产生排名除使用identity外另外的方式(转载)
  16. iPad 被锁死后如何恢复出厂设置
  17. 解决jupyter notebook :No module named ‘tensorflow‘ 及python.exe无法找到入口问题及500 : Internal Server Error
  18. HTML+CSS美食静态网页设计
  19. 精读《Spring 概念》
  20. 搭建一个网站的成本?

热门文章

  1. 总结搜索型手工注入的全过程
  2. LVS_Cluster
  3. 9.软件架构设计:大型网站技术架构与业务架构融合之道 --- 高可用与稳定性
  4. 10.企业安全建设指南(金融行业安全架构与技术实践) --- 安全预算、总结与汇报
  5. 23. Yii 组件事件
  6. Python+Selenium自动化学习笔记
  7. SQL Server索引简介:SQL Server索引级别1
  8. Tomcat session集群
  9. 洛谷P1880 石子合并(区间DP)(环形DP)
  10. uartz Spring与Spring Task总结