详解Java注解(上)

来源:互联网 发布:工厂生产数据表格 编辑:程序博客网 时间:2024/06/05 01:14

注解是Java的一种机制,允许开发人员向代码的不同部分附加信息,它并不是代码的一部分,因为它不会修改代码在运行时的行为,不会修改代码的语义。它主要用于对方法是否依赖方法、方法是否完整,类是否引用了其他类等给出提示信息帮助你编写正确代码。
分类:
1.内置的注解
2.自定义注解
3.为注解添加的注解

一.内置的注解
1.@Deprecated
作用:标记在方法和类前表示它们是已经废弃的方法和类。
用法示例:

@Deprecatedclass MyTest{    @Deprecated    public void doSomething{    }}

2.@Override
作用:指定被标记的方法必须重写超类中的某个方法。
用法示例:

public class Animal{    public void do(){    }}public class extends Animal{    @Override    public void do(){        System.out.println("hello.");    }}

3.@SuppressWarnings
作用:让编译器不再输出指定类型的警告。
用法示例:

@SuppressWarnings({"deprecation"})   //编译器不会再出现已废弃的警告public static void main(String[]args){}

———————————–分割线————————————————————————

二.自定义的注解
1.Marker注解
这类注解没有任何元素
定义这种注解的示例:

public @interface WorkInProgress{}

使用该注解的示例:

    @WorkInProgress  //可以用于告知开发人员被注解的方法尚未实现    public static float computeTax(float amount,float rate){        return 0;    }

2.单值注解
这类注解只有一个数据成员,只接受单值类型。
定义和使用这种注解的示例:
分为两种情况讨论:
(1)数据成员使用默认单词value指定时
定义这种注解的示例:

public @interface Task{    String value();}

使用该注解的示例:

    @Task("Implement tax computations")    public static float computeTax(float amount,float rate){        return 0;    }

(2)数据成员不使用单词value而使用任意其他单词指定时
定义这种注解的示例:

public @interface Task{    String description();}

使用该注解的示例:

    @Task(description="Implement tax computations")//必须有description=,否则会出错    public static float computeTax(float amount,float rate){        return 0;    }

3.多值注解
这类注解只有两个或两个以上数据成员,接受多值类型。
定义和使用这种注解的示例:
分为两种情况讨论:
(1)数据成员使用默认单词value指定时
定义这种注解的示例:

@interface Task{    String description();    String targetDate() default "Jan 1,2012";    int estimatedHours();    String additionalNote();}

使用该注解的示例:

    @Task(description="Implement tax",            estimatedHours=50,            additionalNote="This implement")//此时没有对targetDate进行赋值,则它使用默认值"Jan 1,2012"    public static float computeTax(float amount,float rate){        return 0;    }

注意:对于其中的String targetDate() default “Jan 1,2012” 语句,这是使用default关键字对数据成员设置默认值,如果使用注解时没有对设置default的数据成员进行初始化值的操作,则其值默认为该默认值。

自定义注解的定义规则的总结:
(1)注解声明格式:@interface 注解的名称
(2)注解内的方法声明不能包含任何参数,其本质上是数据成员
(3)注解内的方法声明不能包含任何throws字句
(4)注解内的方法的返回类型应该为:基本类型、字符串、类、枚举类、上述类型的数组。

大家有什么问题可以指出来,小树一定会改正。
下一篇文章将介绍如何为注解添加注解。

0 0
原创粉丝点击