• 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
    
  • 相关阅读:
    sql
    Java后台通过传参得到对应的坐标值的方法
    运行第一个大型项目工程时出现的问题
    对sqlserver存储过程合游标循环中的一点心得
    (基于Java)算法之动态规划——矩阵连乘问题
    算法之线性时间选择(最坏情况下)
    算法之快速排序
    算法之合并排序
    算法之二分搜索法
    设计模式之装饰者模式
  • 原文地址:https://www.cnblogs.com/netu/p/13796328.html
Copyright © 2020-2023  润新知