java注解格式及概念

一.注解概述及常用注解
概念:注解可以理解为一种使用相关信息来绑定Java文件元素的方式
常用的注解:共有四个
1.@Override方法重写的检查,所有的类都是继承Object类,toString重写
重写检查不正确时出现红色波浪线,长用于接口方法的重写*
2.@Deprecated标注已过时的方法,Date类中许多过时的方法都有横线标注
在这里插入图片描述
可查看Api文档得知过时的方法上面有@Deprecated
3. @SuppressWarnings(“all”)压制警告,可以去除编译时的警告,通常写在类上面,也可以只作用方法
在这里插入图片描述
在这里插入图片描述

4.@FunctionalInterface : 表示函数式接口,函数式接口中只能有一个抽象方法
在这里插入图片描述

在这里插入图片描述

public class Anno {
   
Override
    public String toString() {
        return "Anno{}";
    }

    @Deprecated
    
    public void show1(){

    }

    public void show2(){

    }
    public void demo(){
        show1();

    }
}
@FunctionalInterface
interface MyFunction{
    void show3();
}

二、自定义注解格式及注意事项

自定义注解格式:

  • 格式:
    元注解
  •  public @interface 注解名称{}****
    

*============================

  • @Override的示例:

  • @Target({ElementType.METHOD})

  • @Retention(RetentionPolicy.SOURCE)

  • public @interface Override {

  • }

  • 注解的本质实际上是接口

  •  public interface MyAnnotation extends java.lang.annotation.Annotation{}
    
  • 注解中的属性就是方法接口中的方法,通常用能够理解的名称定义方法

  • 只能定义这几种属性,添加以外的数据类型会报错

  •  常用基本数据类型
    
  •  String类型
    
  •  枚举类型
    
  •  注解类型
    
  •  以上类型的数组
    
  • 在这里插入图片描述
    注解中有多少属性就必须添加多少属性,添加了default后可不添加会保持默认属性
    在这里插入图片描述
    在这里插入图片描述
    各种类型添加方式:

@MyAnnotation(age=0,enum1=Enum.p1,Annotation = @MyAnnotation2,strs={"aa","bcc"})
class MyAnnotationText{

}

三、元注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Target: 描述注解能够作用的位置
 * @Retention: 描述注解保留的阶段
 *  1.RetentionPolicy.RUNTIME
 *  当前被描述的注解,会保留到class字节码文件中,并被JVM读取到
 *  2.RetentionPolicy.CLASS
 *  当前被描述的注解,会保留到class字节码文件中
 *  3.RetentionPolicy.SOURCE
 *  当前被描述的注解,只会保留在编译阶段
 * @Documented: 描述注解是否被抽取到api文档中
 * @Inherited: 描述注解是否被子类继承
 */
/*

ElementType.TYPE 只能作用在类名上
ElementType.METHOD 只能作用于方法上
ElementType.FIELD   只能作用于成员变量上
 */
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface yuan {
}
  @yuan
class yunaText{
    @yuan
    int age;
    @yuan
    public void show1(){}
}

在这里插入图片描述
**java反射的好处:**https://blog.csdn.net/c3476741954/article/details/105150738

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值