javaSE_8系列博客——Java语言的特性(四)--注解--(4)-- 类型注解和可插拔类型系统

   在Java SE 8发布之前,注解只能应用于声明。从Java SE 8版本开始,注可以应用于任何类型的使用。这意味着注可以在您使用类型的任何位置使用。使用类型的几个示例是类实例创建表达式(new),casts,implements clauses和throws子句。这种注形式称为类型注,并在注基础中提供了几个示例。

  创建一个类型注,以支持改进Java程序分析方式,确保更强大的类型检查。 Java SE 8版本不提供类型检查框架,但它允许您编写(或下载)一种类型检查框架,该框架实现为与Java编译器结合使用的一个或多个可插拔模块。 例如,您希望确保程序中的特定变量永远不会分配给null ; 你想避免触发NullPointerException。您可以编写一个自定义插件来检查。然后,您将修改代码以注该特定变量,表示它从未分配给null。变量声明可能如下所示:

  

@NonNull String str;

  当您编译代码时,包括NonNull模块在命令行中,如果编译器检测到潜在问题,则会打印出警告,从而允许您修改代码以避免错误。在更正代码以平息所有警告后,程序运行时不会发生此特定错误。 


  您可以使用多个类型检查模块,其中每个模块检查其他类型的错误。这样,您可以建立在Java类型系统之上,添加特定检查的时间和地点。


   通过明确使用类型注和可插拔类型检查器的存在,您可以编写更强大,更不容易出错的代码。 


   在许多情况下,您不必编写自己的类型检查模块。有第三方为你做了工作。例如,您可能希望利用华盛顿大学创建的Checker框架。该框架包括一个NonNull模块,以及一个正则表达式模块和一个互斥锁模块。有关更多信息,请参阅Checker框架


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值