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

posted @   段江涛IT  阅读(1264)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
页脚HTML代码
点击右上角即可分享
微信分享提示