Java 注解


1.注解
    jdk1.5后出的新特性,是一种代码级别的说明。是一种元数据, 注解在Java中以 "@注解名" 的方式呈现。

2.JDK内置的常用注解:
    @Override 表示覆盖或重写父类的方法;
    @Deprecated 表示该方法已经过时了。(当方法或是类上面有@Deprecated注解时,说明该方法或是类都已经过期不能再用,但不影响以前项目使用,提醒你新替代待的方法或是类。如果程序员不小心使用了它的元素,那么编译器会发出警告信息。)
    @SuppressWarnings 表示忽略指定警告,比如@Suppvisewarnings("Deprecation")

2. 自定义注解
(1) 自定义注解
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {

}
(2) 测试自定义注解

/*
* 注解:jdk1.5后出的新特性。是一个代码级别的说明。是一个元数据
*        在java中注解以  "@注解名" 的方式呈现
*
*
* 1. JDK内置的常用注解
* @Override: 用于注解方法,说明该方法必须是重写方法
* @Deprecated : 用于注解属性、方法、类,说明已经过时
* @SuppressWarnings :用于抑制编译器警告
*
* 2. 自定义注解
*
*        public @interface MyAnnoataion{}
*
* 3. 元注解
* @Retention : 描述注解的声明周期
* @Target: 描述注解可以修饰哪些程序元素
* @Documented : 描述注解可以随之生成说明文档
* @Inherited: 描述注解可以被继承
*/
public class TestAnnotation {

    public static void main(String[] args) {
        Person1 p = new Person1();
        p.sleep();

        //@SuppressWarnings("rawtypes")
        // List list = new ArrayList();
        // System.out.println(list);

    }

}

class Person1 {

    @Deprecated
    private String name;
    private int age;

    public Person1() {
    }

    public Person1(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void sleep(){
        System.out.println("睡觉");
    }

}

@MyAnnotation
class Student extends Person1{

    @Override
    public void sleep(){
        System.out.println("聂同学站着睡");
    }

}
3. 元注解:描述注解的注解
    @Retention : 描述注解的生命周期
    @Target: 描述注解可以修饰哪些程序元素
    @Documented : 描述注解可以随之生成说明文档
        注意:声明周期是 RUNTIME
    @Inherited: 描述注解可以被继承
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值