zoukankan      html  css  js  c++  java
  • 2020年9月3日 自定义注解和元注解

    package com.atguigu.test08;
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Inherited;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    /*
     * Java中把注解是看成接口。
     * Java中把枚举看成类。
     * 
     * 注解的三个完整步骤:
     * (1)声明
     * (2)使用
     * (3)读取
     * 
     * 一、注解的声明
     * 语法格式:
     *     【修饰符】 @interface 注解名{
     *     }
     * 
     * 二、元注解
     * 元注解:注解注解的注解,或者换句话说,加在注解上面的注解,叫做元注解
     * 1、@Target
     * 标记这个注解可以用于什么位置。
     * 它由ElementType枚举的常量对象来决定:
     *      例如:TYPE,FIELD,CONSTRUCTOR等10个位置
     * 
     * 2、@Retention
     * 标记这个注解可以滞留到什么阶段
     * 它由RetentionPolicy的3个常量对象来指定:
     *         SOURCE, CLASS, RUNTIME
     * SOURCE:源代码阶段.java        只能被编译器读取
     * CLASS:字节码阶段.class
     * RUNTIME:运行时JVM
     * 
     * 3、@Documented
     * 标记某个注解是否可以被javadoc.exe读取到API
     * 
     * 4、@Inherited
     * 标记这个注解是否可以被子类继承
     */
    public class TestDefineAnnotation {
        public static void main(String[] args) {
            //以下这段代码是用到了反射的内容,今天暂时不用看懂,知道是读取
            Class clazz = MyClass.class;
            MyAnnotation my = (MyAnnotation) clazz.getAnnotation(MyAnnotation.class);
            System.out.println(my);
        }
    }
    //使用注解
    @MyAnnotation
    class MyClass{
        
    }
    
    class Sub extends MyClass{
        
    }
    
    //自定义注解
    //@Target(ElementType.METHOD)//这个表示只能用在方法上
    @Target({ElementType.METHOD,ElementType.TYPE})//这个表示可以用在方法和类型上面
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @interface MyAnnotation{
        
    }
  • 相关阅读:
    android 选择图片或拍照时旋转了90度问题
    拍照选择图片(Activity底部弹出)
    Dialog 自定义使用1
    Dialog 基本使用
    秒杀主流应用的二维码扫描
    gen already exists but is not a source folder. Convert to a source folder or rename it.
    gen already exists but is not a source folder. Convert to a source folder or rename it.
    Unable to execute dex: Multiple dex files define
    xxxx is not translated in zh-rCN, zh-rTW
    Android Application 对象介绍
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13607656.html
Copyright © 2011-2022 走看看