美文网首页
Java-注解

Java-注解

作者: 指尖轻敲 | 来源:发表于2019-02-09 18:13 被阅读91次

一、JDK自带注解

我们最常见的就是@Override,表示方法重写,覆盖父元素的该方法。

@Override
public String toString() {
    return super.toString();
}

除此之外还有Deprecated@Suppvisewarnings,上代码,

public class Person {
    @Deprecated
    public void sayHello(){
        System.out.println(123);
    }
}

这里定义了一个sayHello的方法,并且用@Deprecated修饰了,用来表示该方法即将被废除,不推荐使用了。调用的时候会有删除提示。

image.png

但是如果我就想用怎么办呢?也可以,添加一个忽略的注解。

public class Boy {
    @SuppressWarnings("deprecation")
    public static void main(String args[]){
        Person person = new Person();
        person.sayHello();
    }
}

二、自定义注解

首先自定义注解的语法有一定的要求:

  • 使用@interface关键字声明

  • 成员声明需要无参数,无异常;可以指定默认值

  • 成员的类型有一定的限制:原始类型、String、Class、Annotation(注解接口)、Enumeration(枚举接口)

  • 没有任何成员的注解为“标识注解”

Description.java:

import java.lang.annotation.*;

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
    String name(); //无参数
    int age() default 19; //默认值
}

前面带@号的一些注解为元注解

  1. @Target:指定注解的作用域,这里是用在(METHOD)方法上和(TYPE)类上。
使用注解的类中.png

如果用在了没有指定的作用域上(这里是成员变量),就会报错

  1. @Retention:注解的生命周期,包括:SOURCE(源码中显示)、CLASS (编译到.class文件中)、RUNTIME(运行中,可以通过反射读取)
Class c = Class.forName("Use");
// 判断使用Use这个类中是否有Description这样一个类注解
boolean isExit = c.isAnnotationPresent(Description.class);
  1. @Inherited:允许子类继承,仅限作用在类上的注解

  2. @Documented:生成javadoc时会包含注解。(此注解就是上面说的标识注解,没有任何成员)

相关文章

  • JAVA-注解 Annotation

    JAVA-注解 Annotation sschrodinger 2018/6/4 基本 注解 Java 注解用于为...

  • Java-注解

    主要知识点 Annotation和class interface等java关键字一样,提供注解的定义,所有自定义注...

  • java-注解

    注解分类: 源码注解,编译注解,运行注解 源码注解:编译后的.class 后没有 boolean exists =...

  • Java-注解

    元注解 元注解的作用就是负责注解其他注解。 Java5.0定义了4个标准的meta-annotation类型,它们...

  • java-注解

    注解分类 源码注解:注解只在源码中存在,在class中就不存在了编译时注解:注解在源码和class文件中都存在运行...

  • java-注解

    每当创建描述符性质的类或接口时,一旦其中包含了重复性的工作,那就可以考虑使用注解来简化与自动化该过程。 java ...

  • Java-注解

    一、JDK自带注解 我们最常见的就是@Override,表示方法重写,覆盖父元素的该方法。 除此之外还有Depre...

  • java-注解

    注解的概念 注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Me...

  • Java-注解Annotation

    1 注解的写法 2 注解放在哪里? 类的上面,属性上面,方法上面,构造方法上面,参数前面 3. 注解的作用 用来充...

  • Hello Java

    目录 Java-基础(1/6) Java-对象(2/6) Java-核心库类 上(3/6) Java-核心库类下(...

网友评论

      本文标题:Java-注解

      本文链接:https://www.haomeiwen.com/subject/owvfdqtx.html