为何找不到Java 7中的警告

 更新时间:2019年11月24日 11:05:40   投稿:laozhang  
在本篇文章和里小编给大家整理的是关于Java 7中的警告的相关知识点内容,有需要的朋友们可以参考下。

Java 7的这个新特性改变了警告的对象。构建这些类型毕竟有破坏类型安全的风险,这总得有人知道。但 API 的用户对此是无能为力的,不管doSomething()是不是干了坏事,破坏了类型安全,都不在API用户的控制范围之内。

真正需要看到这个警告信息的是写doSomething()的人,即API的创建者,而不是使用者。所以Java 7把警告信息从使用API的地方挪到了定义API的地方。

过去是在编译使用API的代码时触发警告,而现在是在编译这种可能会破坏类型安全的API时触发。编译器会警告创建这种API的程序员,让他注意类型系统的安全。

为了减轻API开发人员的负担,Java 7还提供了一个新注解java.lang.SafeVarargs。把这个注解应用到API方法或构造方法之中,则会产生类型警告。通过用@SafeVarargs对这种方法进行注解,开发人员就不会在里面进行任何危险的操作,在这种情况下,编译器就不会再发出警告了。

类型系统的修改

虽然把警告信息从一个地方挪到另一个地方不是改变游戏规则的语言特性,但也证明了我们之前提到的观点——Coin项目曾奉劝诸位贡献者远离类型系统,因为把这么一个小变化讲清楚要大费周章。这个例子表明搞清楚类型系统不同特性之间如何交互是多么费心费力,而且对语言的修改被实现后又会怎么影响这种交互。这还不是特别复杂的修改,更大的变动所涉及的内容还会更多,其中还包括大量微妙的分支。

最后这个例子阐明了由小变化引发的错综复杂的影响。我们对Coin项目中改进的讨论也结束了。尽管它们几乎全都是语法上的小变化,但跟实现它们的代码量相比,它们所带来的正面影响还是很可观的。一旦开始使用,你就会发现这些特性对程序真的很有帮助!

小结

修改语言非常困难。而用类库实现新特性总是相对容易一些,当然并不是所有特性都能用类库实现。面对挑战时,语言设计师可能会做出一些比他们的预想更轻微、更保守的调整。

现在,我们该去看看构成发布版本更重要的东西了,先从Java 7中某些核心类库的变化开始。我们的下一站是I/O类库,那里可以说是发生了天翻地覆的变化。在此之前,希望你已经掌握了Java之前的版本处理I/O的方法,因为Java 7中的这些类(有时候被称为NIO.2)是构建在之前框架基础之上的。

如果你想看到更多关于TWR实战的例子,或者想要了解最新、高性能的I/O类,可以参考脚本之家其他相关文章。 

相关文章

  • Java线程使用同步锁交替执行打印奇数偶数的方法

    Java线程使用同步锁交替执行打印奇数偶数的方法

    这篇文章主要介绍了Java线程使用同步锁交替执行打印奇数偶数的方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java对象传递与返回的细节问题详析

    Java对象传递与返回的细节问题详析

    我们知道这是一个核心概念,在Java中总是按值传递而不是按引用传递,下面这篇文章主要给大家介绍了关于Java对象传递与返回的细节问题的相关资料,需要的朋友可以参考下
    2022-11-11
  • Spring @Bean vs @Service注解区别

    Spring @Bean vs @Service注解区别

    本篇文章主要介绍了Spring @Bean vs @Service注解区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Java中JFinal框架动态切换数据库的方法

    Java中JFinal框架动态切换数据库的方法

    这篇文章主要介绍了Java中JFinal框架动态切换数据库的方法,本文通过两种方法结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • java实现屏蔽词功能

    java实现屏蔽词功能

    这篇文章主要介绍了java实现屏蔽词功能,类似贴吧里面屏蔽各种用户的发帖内容,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • mybatis插件pageHelper实现分页效果

    mybatis插件pageHelper实现分页效果

    这篇文章主要为大家详细介绍了mybatis插件pageHelper实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 最新版 IDEA 2022.1 正式上线新功能一览

    最新版 IDEA 2022.1 正式上线新功能一览

    4月12日,最新版的IDEA 2022.1正式发布,无论是从UI上,还是功能上,都有了很大的改进,完善,一起来看一下都有那些重要的更新
    2022-04-04
  • 全方位解析key值不确定的json数据

    全方位解析key值不确定的json数据

    这篇文章主要介绍了全方位解析key值不确定的json数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 解决Spring在Thread中注入Bean无效的问题

    解决Spring在Thread中注入Bean无效的问题

    这篇文章主要介绍了解决Spring在Thread中注入Bean无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java创建对象的四种方式详解

    Java创建对象的四种方式详解

    这篇文章主要介绍了Java创建对象的四种方式详解,如果我们不想利用默认构造器来创建java对象,而想利用指定的构造器来创建java对象,则需要利用Construtor对象,每个Construtor对应一个构造器,需要的朋友可以参考下
    2023-11-11

最新评论