注解

注解Annotation

public class test01 extends Object{
    @Override
    public String toString() {
        return super.toString();
    }
}

例如上面的代码中子类重写父类的方法,出现的**@Override就叫做注解**

格式:@注释名 , 也可以添加参数:@SuppressWarings(value = “unchecked”)

注解可以加在包、类、方法…上面,也可作为额外信息,也有检查代码正确性、约束代码的作用

内置注解

  • @Override 定义在java.lang.Override中,表示重写的声明
  • @Deprecated 定义在java.lang.Deprecated中,表示建议不要使用,容易出Bug,可以使用(有些代码会被划上线)
  • @SuppressWarnings 定义在java.lang.SuppressWarnings中,抑制编译时的警告信息 这个在使用时需要添加一个参数比如:@SuppressWarnings(“all”) 这些参数都是固定的(看源码),选择性使用即可。

元注解

元注解的作用就是负责注解其他的注解

java定义了4个标准的meta-annotation类型对其他的注解进行说明

@Target 描述注解的使用范围(查看源码获取参数,根据需求选择 在类、方法、字段上)

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@MyAnnotation
public class test01 extends Object{
    @MyAnnotation
    public void test(){

    }
}
@Target(value = {ElementType.METHOD,ElementType.TYPE}) //表示注解可以用在方法和类上,(value是数组)
@interface MyAnnotation{

}

@Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(默认RUNTIME SOURCE<CLASS<RUNTIME

@Document 该注解将被存放到javadoc

@Inherited 子类可以继承父类的此注解

//Target表示注解用在哪个地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})

//Retention 表示注解在什么地方还有效
// runtime > class > source 默认runtime
@Retention(value = RetentionPolicy.RUNTIME)

//Documented 表示是否将注解生成在javadoc中
@Documented

//Inherited 子类可以继承父类的注解
@Inherited
@interface MyAnnotation{

}

自定义注解

用**@interface**自定义注解,自动继承java.lang.annotation,Annotation接口

格式:@interface 注解名`

每一个方法声明了一个配置参数

方法和参数的名称一致

返回值和参数的类型一致,返回值只能是基本类型 Class,String,enum

通过default声明参数的默认值

如果只有一个参数成员,一般参数名为value

注解元素必须要有值,定义注解元素时,使用空字符串、0作为默认值

@MyAnnotation(name = "000")//下面声明了注解的参数 这里必须加参数
public class test01 extends Object{
    public void test(){

    }
}

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
    //注解的参数:参数类型 + 参数名();
    String name();
    String name() default "";//默认值 上面不带参数
    int age() default 0;
    int id() default -1;//默认值为-1,代表不存在
    
    String value();//如果只有一个参数成员,一般参数名为value
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值