java注解 自定义注解类型

一 笔记

  • 注解是一种类型,也会编译成class文件;

  • 定义注解 public @interface MyAnnotation { }

  • 注解可以出现在类、接口、成员方法、构造方法、局部变量、形参列表上面…

  • jdk内置的注解:

    • @Deprecated
    • @Override 专门给编译器参考的;带有Override编译器在编译时都会进行检查;检查这个方法是否重写了父类的方法,如果不是重写了父类的方法,编译器会自动报错;
    • @SuppressWarnings
    • @SafeVarargs
    • @FunctionalInterface
      • 函数式接口要求接口中抽象方法必须“有且只有一个”,非抽象接口可以有多个;
      • 函数式接口要求接口中的抽象方法数量必须是1个;
      • @FunctionalInterface 注解出现在接口上,用来进行编译检查,如果这个接口不符合“函数式接口”的定义,编译器会报错;
  • 注解编译之后也是生成class文件,生成MyAnnotation.class

  • 在注解当中,可以给注解类型定义属性;

  • 定义属性的语法有点像方法,但它不是方法,叫做属性;

  • 定义属性的语法: 属性类型 属性名();

  • 注意:()中不能有任何属性;如: int age();

  • 使用default关键字可以给属性定义默认值;

二 自定义注解类型 MyAnnotation.java

public @interface MyAnnotation {
//    age属性,类型是int
    int age();

//    name属性,类型是String
    String name();

//    添加了默认值,在使用注解时可以不写该属性
    String color() default "red";
}

三 使用自定义注解 AnnotationTest01.java

//@MyAnnotation
public class AnnotationTest01 {
//    @MyAnnotation
    private int num;

//    @MyAnnotation
    public AnnotationTest01(){

    }

//    @MyAnnotation
    public void doSome(){

    }

//    @MyAnnotation
//    public void sum(@MyAnnotation int a, int b){
//
//    }

    public void sub(){
//        @MyAnnotation
        int k = 100;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值