java注解的简单了解基础知识
2020-04-21 21:10
302 查看
注解
@Override 重写父类的方法
@Deprecated 声明方法过时
@Suppvisewarnings 忽略警告
忽略过时警告
@Suppvisewarnings(“deprecation”)
注解分类
1.源码注解 class文件看不到,在源码看得到 2.编译时注解 在class文件,源码依旧看的到 3.运行时注解 在运行阶段还起作用,甚至会影响运行逻辑的注解按照运行机制分
自定义注解
- 使用 @interface 关键字定义注解
- 成员以 无形参 无异常(不能抛出异常) 的形式声明
- 可以用default 关键字 声明一个默认值
- 成员类型受限 , 合法的类型包括 基本数据类型 及 String,Class,Annotation,Enumeration
- 如果注解只有一个成员,则成员名必须取名为 value(),在使用时可以忽略成员名和赋值号(=)
- 注解可以没有成员 没有成员的注解称为标识注解
例子
``
public @interface Description {
String desc(); String author(); int age() default 20; }
``
元注解
``
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
String desc(); String author(); int age() default 20; }
``
元注解解释
@Target({ElementType.METHOD,ElementType.TYPE})
Target 作用域 ElementType.METHOD 方法声明
ElementType.TPYE 类,接口声明
ElementType.CONSTRUCTOR 构造方法声明
ElementType.FIELD 字段声明 成员变量
ElementType.LOCAL_VARIABLE 局部变量声明
ElementType.PACKAGE 包声明
ElementType.PARMENTER 参数声明
@Retention(RetentionPolicy.RUNTIME)
Retention 生命周期 RententionPolicy.RUNTIME 运行时存在,可以通过反射读取
RententionPolicy.CLASS 编译时会记录到class中,运行时忽略
RententionPolicy.SOURCE 只有在源码显示,编译时会丢弃
Class c = Class.forName("类路径"); boolean isExist = c.isAnnotationPresent(注解类名.class); if(isExist){ 注解类名 d = (注解类名)c.getAnnotation(注解类名.class); System.out.println(d.value()); }
@Inherited
允许子类继承 (继承类的注解 不会继承方法的注解 , 但是接口实现是不会继承的)
@Documented
生成javadoc时会包含注解
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- JAVA学习笔记(一):简单了解JAVA基础知识及编译执行
- Java基础知识_注解
- Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
- 第一章 JAVA基础知识系列 -- 第二节 注解概念及应用
- Java注解的简单了解
- Java基础知识系列之注解基本概念
- 学Java前要了解的一些基础知识
- java基础知识学习一(了解优势背景、工作原理和平台)
- java基础知识回顾——枚举类和注解
- 从零开始学习Java——基础知识之了解Java(第一天)
- iOS基础之OC简单控件知识了解(二)
- Java中数组的知识简单了解!
- Java基础知识梳理--注解
- 黑马程序员java基础不得不了解的细碎知识
- java零基础知识回顾(io简单总结)
- java基础知识了解
- 黑马程序员-----------快速了解java基础小知识
- java基础讲解01-----简单了解一下java
- java基础知识简单算法题目
- 【Java基础知识】Annotation02_注解(Annotation)自定义注解入门