Java教程

Java的注解和元注解

本文主要是介绍Java的注解和元注解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java的注解和元注解

    • 注解
    • 范围:
    • 保持
    • 元注解

注解

定义:

可以对java中的某一段程序进行说明和标注,并且这个注解的信息可以被其他程序使用特定的方式读取到,从而完成相应的操作。

格式:

  • 没有属性的注解:
public @interface 注解名称{
    
}
  • 有属性,但没默认值的注解
public @interface 注解名称{
	public 类型 属性名();
}
  • 有属性有默认值的注解
public @interface 注解名称{
	属性类型 属性名称() default 默认值;
}

类型默认为public 可以省略不写

范围:

  • TYPE 使用在类、接口、注解、枚举等类型上
@Test
public class A{

}
  • 使用在属性上面
//   FIELD  全局变量使用注解
public class A{
	@Test
	private String a;
}
// LOCAL_VARIABLE 局部变量使用注解
public class A{
    public void say(){
        @Test
        int num = -2;ss
    }
}
  • 方法上面
// METHOD  在方法上面
public class A{
	@Test
	public void say(){
	
	}
}

// CONSTRUCTOR 在构造方法上面
public class A{
    @Test 
    public A(){
        
    }
}


//  PARAMETER 方法参数上面使用
public class A{
    public void say(@Test String name){
        
    }
}

  • ANNOTATION_TYPE 在注解类型上面
@Test
public @interface A{

}
  • PACKAGE 使用在包上面
@Test
package com.learnjava.demo;

保持

  • SOURCE:注解只保留在源文件,当java文件编译成class文件的时候,注解被遗弃
  • CLASS:注解被保留到Class文件,但jvm加载class文件时候被遗弃
  • RUNTIME:注解不仅保留到class文件中,jvm加载class文件之后,仍然存在。

元注解

自定义注解时候,一般会使用到元注解。

  • @Target,用于描述注解的使用范围,例如用在类上面还是方法上面
  • @Retention,用于描述注解的保存策略,是保留到源代码中、Class文件中、还是加载到内存中
  • @Documented,用于描述该注解将会被javadoc生产到API文档中
  • @Inherited,用于表示某个被标注的类型是被继承的,如果一个使用了@Inherited修饰的annotation 类型被用于一个class,则这个annotation将被用于该class的子类。
这篇关于Java的注解和元注解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!