`
cucaracha
  • 浏览: 137665 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:85814
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:35650
社区版块
存档分类
最新评论

[Java 8] 类型注释和插件式类型系统

阅读更多
在 Java 8 之前的版本中,Annotation 只能注释在声明之上。例如类声明,成员变量声明,方法声明等。在 Java 8 之后,Annotation 可以用于类型。这意味着,在代码中的任何地方,只要使用类型就可以使用 Annotation 进行注释。例如,实例化一个类的时候(new),强制类型转换的时候,实现接口的时候(implements),抛出异常的时候(throws)。这种 Annotation 被称作类型注释(Type Annotation)。

类型注释可以是为了让 Java 程序可以确保更为强壮的类型检查。但是在 Java 8 中没有提供类型检查框架,你可以下载或自己编写插件式的类型检查框架,并且与 Java 编译器一起结合使用。

例如,如果你希望你的变量的值不可以是 null,这样可以避免产生 NullpointerException。你就可以编写一个插件式的类型检查系统来进行检查。然后在代码中将你认为不可以为 null 的变量加上类型注释,表明被注释的变量不可以为 null。就像下面这样:
myString = (@NonNull String) str;


当你在编译代码的时候,需要在命令行包含 NonNull 插件模块,如果编译器发现有潜在的问题,则会打印出异常信息。你可以更改代码修正这些异常信息,所有的异常修复后可以避免在程序运行的时候发生 NullpointerException 这样的异常。

你可以编写多个不同的类型检查模块,让每个模块检查不同类型的错误。这样,你就可以在 Java 类型系统之上,创建你自己想要的类型检查系统。

合理地使用类型注释和类型检查系统,可以让你的代码更加健壮,更加不容易出错。

在大多数情况下,你都不需要自己编写类型检查模块。有一些第三方包已经很好地完成了这个工作。例如,华盛顿大学创建的类型检查框架。这个框架已经包含了 NonNull 检查模块、正则表达式检查模块、互斥锁检查模块等。详情可参考:Checker Framework

文章来源:http://www.aptusource.org/2014/03/type_annotations/

分享到:
评论

相关推荐

    阿里java开发代码规范插件(IDEA+ECLIPSE)

    最新版阿里java开发手册规范检测插件,对java代码的规范化具有非常大的帮助。

    本项目是IntelliJ IDEA的插件,能帮助java开发者自动生成javadoc文档注释

    本项目是IntelliJ IDEA的插件,能帮助java开发者自动生成javadoc文档注释

    代码统计插件 eclipse plugin java

    代码统计插件 eclipse plugin java 提供xls导出。 liugang594 开发的,方便下载 这是一款小型的代码统计软件。它具有以下功能: 1、良好的统计性能。可以统计各种方式的注释,如单行、多行注释;注释在行前 、行...

    jautodoc_1.8.0 eclipse注释插件

    JAutodoc是一个能够自动为你的源代码加上Javadoc注释的Eclipse插件。

    kotlin-compile-testing,用于测试kotlin和java注释处理器、编译器插件和代码生成的库.zip

    一个库,用于在过程中编译kotlin和java代码,本着google编译测试的精神。例如,您可以使用此库测试注释处理器或编译器插件。

    JAVA_API1.6文档(中文)

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    通过spring插件生成api注释文档

    通过spring插件库实现注释文档的生成; 步骤: 1、修改App.java中的几个配置信息; 2、运行App.java中的main方法; 之后即生成了代码中带规范注释的api文档

    IDEA插件之GET/SET自动生成带模版注释插件

    IDEA插件之GET/SET自动生成带模版注释插件,很方便的插件。 使用方法在下面 https://blog.csdn.net/qq_41961113/article/details/80079185

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java swing 图书管理系统

    这是自己做的一个课程设计,系统界面是采用Java swing编写的,项目开发环境是Windows10,JDK1.8,开发软件eclipse-windowbuider插件,MySQL数据库,该系统采用C/S结构设计,主要由图书类别管理和图书管理两大功能...

    Java 1.6 API 中文 New

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...

    iOS中注释插件

    在iOS中实现和C# Java中一样的注释效果

    EmEditor插件集.rar

    EmEditor插件集.rar

    java流程分析插件(SOPA)_V1.0.0.zip

    基于源码流程分析(SOPA)Sources Oriented Process Analysis SOPA是一款提高java开发效率的eclipse插件,其主要用途如下: 1.快速领会方法调用过程, 2.快速画交易流程图, 3.使工程维护更加简单, 4.团队协作更加简单,...

    最新Java 基本算法代码示例+注释

    最新Java 基本算法代码示例+注释

    java源码包4

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    jtsgen:将Java类型转换为TypeScript

    在编译时从带注释的Java类和接口中发出类型和文档 支持多种模块类型和输出变体 只读和名称空间支持 在源代码中配置代码位置(包注释) 文献资料 该文档,包括简介和所有功能的完整列表,可以在以下位置找到: -> &...

    java源码包3

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

Global site tag (gtag.js) - Google Analytics