Java注解是什么,注解的三大重要用途示例,全面版

Java注解概述及三大重要用途示例

一、注解概念:

1)Annotation(注解)其实就是代码里的特殊标记,JDK1.5新增的功能。这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。 2)在JavaSE中,注解的使用比较简单,例如标记过时的功能,忽略代码警告等,在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。 3)未来的开发模式都是基于注解的,JPI是基于注解的,Spring2.5以上都是基于注解的,可以说:框架 = 注解 + 反射 + 设计模式。

二、注解三个示例:

示例一:生成文档相关的注解

示例二:在编译时进行格式检查(JDK内置的三个基本注解)

  1. Override:限定重写父类方法,该注解只能用于方法; 用于限定子类中的该方法一定是在重写父类中的方法。在编译时就去校验方法; ①重写run()方法正确时的情况
public class ThreadTest implements Runnable {
          
   
    @Override   //注解
    public void run() {
          
   
        for (int i = 0; i < 11; i++) {
          
   
            if (i % 2 == 0) {
          
   
                System.out.print(i + " ");//不换行打印,println换行打印
            }
        }
    }

②重写run()方法错误时的情况,编译时就会自动报错 2. Deprecated:用于表示所修饰的元素(类,方法等)已过时。 ①通常是因为所修饰的结构危险或存在更好的选择; ② 注意:过时的方法是可以用的,只是不建议用,但是处于对老的项目的兼顾,是没有删除的;比如Date类中Date方法,源码展示:

  1. SuppressWarnings:抑制编译器警告。 注解上此举就不会报警告了,比如说ArrayList没有加泛型时就会警告,此注解会抑制编译器报这种警告。eclipse中更加明显,下面显示用的IntellJ IDEA

示例三:自定义注解

1)定义新的Annotation类型使用@interface关键字; 2)自定义注解自动继承了Java.lang.annotion.Annotation接口; 3)Annotation的成员变量在Annotation定义以无参数方法的形式来声明。其类型只能是八种基本数据类型、Sting类型、Class类型、enum类型、Annotion类型、以上所有类型的数组。 4)内部定义成员,通常使用value表示; 5)可以指定成员的默认值,使用default定义; 6)如果自定义注解没有成员,表明是一个标识作用。

//声明注解
public @interface AnnotationTest {
          
   
    String value();//也可以是String数组
    //String value() default  "hello";//默认值
}

class Test {
          
   
    @AnnotationTest(value = "hello")
    public void show() {
          
   
    }
}

注意:自定义注解必须配上注解的信息处理流程(使用)才有意义。

经验分享 程序员 微信小程序 职场和发展