首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java 7和java 8中的javac相等运算符

java 7和java 8中的javac相等运算符
EN

Stack Overflow用户
提问于 2014-10-01 10:39:35
回答 2查看 270关注 0票数 3

我必须在Java 8中为我的类写一篇关于"javac工具“的文章。

以下是一些我不明白的事情。Oracle说,在新的Java8中:“JavaLanguageSpecification15.21节中的相等操作符的类型规则现在已经被javac命令正确地强制执行了。”

“Java8中的新事物”:http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html

Java语言规范:http://docs.oracle.com/javase/specs/jls/se8/jls8-diffs.pdf

我真的不明白。我认为它在Java 7中运行得很好。有人知道我错过了什么吗?什么是Java 7中没有“正确执行”的?

如果有人有答案,你能告诉我你在哪里找到的,如果你不是偶然发现的;)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-01 10:43:25

下面是一个链接到错误报告,它报告了一个特定的情况,javac 7将编译一个根据JLS无效的==测试。尽管这一缺陷在2010年被标记为固定的,但讨论表明表示它在2013年仍在显现。

简而言之,我认为Java 8的这个“特性”实际上是一个bug修复。他们并没有真正改变语言本身(如JLS所定义的),也没有添加额外的标准库功能。他们只是修正了一个错误,这个错误从一开始就不可能出现。

票数 4
EN

Stack Overflow用户

发布于 2014-10-01 10:47:22

给定时间,这可能是对JDK-8013357的引用

此代码不应编译:

代码语言:javascript
复制
class Main {
  public boolean func(Object obj) {
    return obj == 0;
  }
}

但是javac (因为JDK 7接受它)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26139461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档