注解

概述

1、可以被编译或运行,不影响程序逻辑,相当于嵌入代码的补充信息

2、JDK 内置的基本注解类型

(1)@Override

(2)@Deprecated

(3)@SuppressWarnings

3、@interface 不是代表接口 interface,而是表示注解 

 

@Override

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

1、编译器会进行语法校验,检查该方法是否重写父类方法:有重写,编译通过;无重写,编译错误

2、@Target(ElementType.METHOD) 表示只能修饰方法

 

@Deprecated

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

1、表示某个程序的元素已过时

2、@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) 表示可以修饰构造器、字段、局部变量、方法、包、参数、类

3、过时不代表不能使用,而是不推荐使用 

4、可以做到新旧版本兼容、过渡

 

@SuppressWarnings

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}

1、可以抑制编译器警告

2、@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) 表示可以修饰类、字段、方法、参数、构造器、局部变量,作用范围与放置位置有关

3、String[] value(); 存放需要抑制的警告类型,以 String 数组形式传入

@SuppressWarnings({"警告类型1", "警告类型2"})

4、IDEA 可以指定位置生成

 

元注解

1、修饰注解的注解

2、种类

(1)@Retention:指定注解的作用范围(注解可以保存多久)

(2)@Target:指定注解的使用范围,即可以在哪些位置使用

(3)@Documented:指定该注解是否会在 Javadoc 中体现

(4)@Inherited:允许子类继承父类注解

(5)@Repeatable:可以多次应用于同一个声明(Java8)

3、@Retention

(1)只能修饰注解,指定该注解可以保留多长时间

(2)包含一个 RetentionPolicy 类型的 value,必须为该 value 指定值

4、RetentionPolicy

(1)是一个 enum 枚举类

(2)RetentionPolicy.SOURCE:编译器使用后,直接丢弃这种策略的注解

(3)RetentionPolicy.CLASS:编译器把注解记录在 .class 文件,运行 java 程序,JVM 不会保留该注释,这是默认值

(4)RetentionPolicy.RUNTIME:编译器把注解记录在 .class 文件,运行 java 程序,JVM 会保留该注释,程序可以通过反射获取该注解

5、@Target 的 ElementType 参数

(1)CONSTRUCTOR:构造器声明

(2)FIELD:字段声明(包括枚举常量)

(3)LOCAL_VARIABLE:本地变量声明

(4)METHOD:方法声明

(5)PACKAGE:包声明

(6)PARAMETRE:参数声明

(7)TYPE:类、接口(包括注解类型)或枚举的声明

posted @   半条咸鱼  阅读(47)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示