• 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
    
  • 相关阅读:
    python 生成器与装饰器一篇就够了!!!
    Win10安装node.js,npm,淘宝镜像,cnpm失败的解决方法
    Xshell/CentOs7关闭防火墙命令
    Mybaits_逆向工程生成代码
    WebStrom 使用淘宝镜像
    Redis相关命令
    linux中添加service
    简单直接的 Linux查找进程和杀死进程的方法
    发布Spring boot.jar 项目到服务器之后台启动
    CentOS下mysql常用命令
  • 原文地址:https://www.cnblogs.com/netu/p/13796328.html
Copyright © 2020-2023  润新知