详解Java注解(上)

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

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

@Deprecated
class 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值