Java注解-注解入门,内置注解,自定义注解

注解入门

注解的作用?
1,不是程序本身,可以对程序作出解释(类似注释)
2,可以被其他程序(如编译器)读取,可以作为信息处理的流程。
注解的格式?
@注释名,还可以添加一些参数值,例如@SuppressWarnings(value = ”unchecked“)
使用的位置?
package,calss,method,field都可以额外添加注解

内置注解–三个

@Deprecated 已过期,表示方法是不被建议使用的
@Override 重写,标识覆盖它的父类的方法
@SuppressWarnings 压制警告,抑制警告

元注解–四个

@Target:描述注解的使用范围,有四个常用属性限定注解能运用的地方
ElementType.ANNOTATION_TYPE 注解
ElementType.COUNSTRUCTOR 构造方法
ElementType.FIELD 属性
ElementType.METHOD方法上
@Retention:用于指定被修饰的自定义注解可以保留多久,有三个常用属性
SOURCE:在源文件中有效
CLASS:在class文件中有效
RUNTIME:在运行时有效
@Documented:执行javadoc命令时,被该元注解修饰的自定义注解也会生成在文档中
@Inherited:如果父类所使用的注解有此修饰,则子类可以继承该注解,否则不能

自定义注解

  • 自定义格式:public @interface 注解名
  • 利用元注解进行填充自定义注解的意义
  • 注意:
  • 注解元素必须有值,我们定义注解元素时,经常使用空字符串,0作为默认值,也经常使用-1作为不存在含义
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value = {ElementType.ANNOTATION_TYPE,ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.CLASS)
public @interface DefineByMyself {
    String str() default  "";
    int age()  default  0;
}

你可能感兴趣的:(JAVA)