zoukankan      html  css  js  c++  java
  • Java注解的使用,类似于C#的Attribute

    1.定义注解,代码如下:

    import java.lang.annotation.*;
    
    /**
     * 定义注解类,用于注解某个类或方法
     * 
     * @author Administrator
     *
     */
    @Target(ElementType.METHOD)//表示用于标识方法
    @Retention(RetentionPolicy.RUNTIME)//表示运行时保留
    public @interface TableColumn {
        /**
         * 数据库字段
         * 
         * @return
         */
        String dbName() default "";
    
        /**
         * 表单名称
         * 
         * @return
         */
        String fieldName();
    
        /**
         * 备注
         * 
         * @return
         */
        String remark() default "无";
    }

    Target的取值如下:
    1.CONSTRUCTOR:用于描述构造器
    2.FIELD:用于描述域
    3.LOCAL_VARIABLE:用于描述局部变量
    4.METHOD:用于描述方法
    5.PACKAGE:用于描述包
    6.PARAMETER:用于描述参数
    7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

    Retention的取值如下(常用RUNTIME):
    1.SOURCE:在源文件中有效(即源文件保留)
    2.CLASS:在class文件中有效(即class保留)
    3.RUNTIME:在运行时有效(即运行时保留)

    使用代码如下:

    public class Student {
        @TableColumn(dbName="detect_time", fieldName = "detectTime", remark = "采集时间")
        public void PrintMsg(String msg) {
            System.out.println("nihaoya" + msg);
        }
    }

    读取代码如下:

    import java.lang.reflect.*;
    import sun.misc.*;
    
    public class Hello {
        public static void main(String[] args) {
            Method[] methods = Student.class.getDeclaredMethods();
            for (Method m : methods) {
                System.out.println(m.getName());
                TableColumn tc = (TableColumn) m.getAnnotation(TableColumn.class);
                System.out.println(tc.remark());
            }
        }
    }

    原文参考:
    http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html
    http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html

  • 相关阅读:
    一文了解快排的各种形式和坑
    逆序对的数量
    __type_traits 技法
    Traits 编程技法
    一个简单的内存管理器
    「ZooKeeper」概述
    「MySQL」explain
    「MySQL」InnoDB加锁情况
    「MySQL45讲」个人总结
    「MySQL45讲」1-45讲
  • 原文地址:https://www.cnblogs.com/duanjt/p/6924795.html
Copyright © 2011-2022 走看看