• java注解


    • 注解:是代码里的特殊标记,程序可以读取注解,一般用于替代配置文件。

    • 格式:以“@注释名”在代码中存在,还可以添加一下参数值。

      @SuppressWarnings(value = "unckecked")
      
    • 使用:可以附加在package,class,method,field等上面,相当于给它们添加了额外的辅助信息,可以通过反射机制实现对这些元数据的访问。

    注解类MyAnno.java
    @Inherited//子类可以继承父类
    @Documented//注解将包含在javadoc中
    @Retention(RetentionPolicy.RUNTIME )
    @Target(value = {ElementType.METHOD,ElementType.TYPE})
    public @interface MyAnno {
        //注解的参数--->参数类型+参数名()
            String value();
            int age() default 1;
            int id() default 1;
    }
    
    实验类Anno.java
    public class Anno {
        @MyAnno(value = "jack",age = 18,id=10001)
        public void info(String name,int age,int id){
            System.out.println("姓名:"+name+"_年龄:"+age+"_身份:"+id);
        }
    }
    
    测试类TestAnno.java
    public class TestAnno {
            public static void main(String[] args) throws Exception {
                //获取类对象
                Class<?> aClass = Class.forName("com.annotation.Anno");
                //获取类中方法
                Method info= aClass.getMethod("info", String.class, int.class, int.class);
                //获取注解
                MyAnno myAnno = info.getAnnotation(MyAnno.class);
                System.out.println(myAnno.value());
                System.out.println(myAnno.age());
                System.out.println(myAnno.id());
                Anno anno = (Anno) aClass.newInstance();
                info.invoke(anno,myAnno.value(),myAnno.age(),myAnno.id());
            }
    }
    

    输出

    jack
    18
    10001
    姓名:jack_年龄:18_身份:10001
    
  • 相关阅读:
    智能指针之 auto_ptr
    UML在线绘图
    inline使用
    工作随笔—2017-12-12
    链表排序
    转——浅谈如何提高服务器并发处理能力
    使用re开发python计算器
    Linux-centos7下python3 环境设置
    C语言中的static 详细分析
    pycharm import pygame 出现报错:No module named 'pygame'
  • 原文地址:https://www.cnblogs.com/netu/p/13796328.html
Copyright © 2020-2023  润新知