java 注解

本文介绍了Java中的注解,包括JDK自带注解、注解分类、自定义注解及其解析方法。并给出了自定义注解的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JDK 自带注解:

@Override                           //表示覆盖或重写父类的方法   
@Deprecation                        //表示过时的方法
@SuppressWarnings("deprecation")    //表示忽略过时方法所带的警告

二、注解的分类

1、按运行机制,注解可分为三类:

 1. 源码注解(只在源码存在)
 2. 编译注解(在class文件中也存在)
 3. 运行时注解(在运行阶段仍然起作用)

2、按照来源,注解可分为三类:

 1. JDK自带的注解(如:@Override、@Deprecated、@SuppressWarnings)
 2. 第三方的注解(如:@Autowired、@Service……)
 3. 自定义注解(自己编写的注解)

三、自定义注解:

1、 元注解

@Target     //注解的作用域 :表示该注解可以用于一个类中的哪些属性及方法上,如果作用域类型有多个用英文逗号分隔
@Retention  //表示该注解的生命周期
@Documented //表示生成javadoc的时候会包含注解
@Inherited  //表示当前注解可以由子注解来继承

2、自定义注解

@Target({ElementType.FIELD,ElementType.METHOD})  
@Retention(RetentionPolicy.RUNTIME)   
@Inherited
@Documented
public @interface UserAnnotation{  //使用 @interface 定义注解
    public String name();          //成员以无参无异常方式声明
    public int id() default 0;     //可以用default指定默认值
}

3、解析注解

public class TestAnnotation {

    @UserAnnotation(id=2018,name="zhangsan")
    public Object obj;

    public static void main(String[] args) throws Exception {

        Field objField = TestAnnotation.class.getField("obj");

        UserAnnotation ua = objField.getAnnotation(UserAnnotation.class);

        System.out.println(ua.id()+","+ua.name());


        //获得注解自己的注解
        Target t = ua.annotationType().getAnnotation(Target.class);
        ElementType[] values = t.value();
        System.out.println(Arrays.toString(values));
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值