c#特性 java注解,Java注解全面了解

开发工具使用的是IntelliJ IDEA

一. 神马是注解?

注解(也称为元数据),为我们的代码添加信息提供了一种形式化的方法,使我们在某些时刻可以方便的使用这些数据。

注解在一定程度上把数据与源码文件结合在一起,同时也是对来自C#之类的其它语言对java造成的语言特性压力所做出的一种回应。

注解是从Java SE5(JDK5,下文的JDK指的是>=JDK5)引入的特性,它可以帮助我们减轻编写“样板”代码的负担,通过注解,我们可以将这些元数据保存在Java源代码中,利用Annotation API为自己的注解构造处理工具;同时注解的有点还包括:更加干净易读的代码以及编译期类型检查等。虽然JDK5预先定义了一些元数据,但一般来说,主要还是需要我们自己添加新的注解,并且按自己的方式使用它们(嗯,就是这样!)

二. 注解的语法,了解一下?

注解的语法比较简单,除了@符号的使用之外,它基本与Java固有的语法一致;JDK中内置了三种注解,定义在java.lang包中

@Override,表示当前的方法覆盖基类中的方法,如果你不小心方法名写错了对不上基类中的方法,编译器会发出错误提示

@Deprecated,如果使用了这个注解,IDE会告诉我们这个方法过时了,不建议我们使用(一般文档中会告诉你那个API取代了它)。

@Deprecated

@SuppressWarnings,关闭编译器的警告信息,在JDK5以下,也可以使用该注解,不过会被忽略不会起作用。

另外Java还提供了另外四种注解,用于负责自定义注解,如下分类;

这里要注意的是,上面这三种注解我们称为标准注解接下来我们要说的这四种称为元注解,元注解专门负责注解其它的注解。

@Target,表示该注解可以用于什么地方,类型定义在ElementType枚举中,可以参考图片:

ElementType

@Retention,表示需要在什么级别保存该注解信息,同样的,级别分类定义在RetentionPolicy枚举中,见图:

ElementType

@Documented,该注解包含在javadoc(注解 /** */)中.

@Inherited,允许子类集成父类中的注解.

注解元素可用的数据类型

所有的基本类型(int,float,boolean等)

String

Class

enum

Annotation

以上类型的数组

如果你使用了其他类型,那么编译器就会报错;

三. 接下来让我们来定义一个简单的注解吧!

我们以Runtime级别的注解举例,然后通过反射来获取注解的信息。

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

public @interface Table

你可能感兴趣的:(c#特性,java注解)