自定义Annotation应用实例:给自定义的错误码加上注解

本文介绍Java 5中新引入的注解特性,展示了如何使用自定义注解来标注错误码,并通过示例代码演示了注解的创建及使用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Annotation,即注解,是Java5的新特性,Thinking java 里的的解释是:注解是众多引入到java SE5中的重要语言变化之一。他们可以提供用来完整地描述程序所需的信息,而这些信息是无法用java来表达的。因此,注解使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。注解可以用来生成描述符文件,甚至或是新的类定义,并且有助于减轻编写样板代码的负担。通过使用注解,我们可以将这些元数据保存在java源代码中,并利用annotation API为自己的注解构造处理工具,同时,注解的优点还包括:更加干净易读的代码以及编译器类型检查等。虽然Java SE5预先定义了一些元数据,但一般来说,主要还是需要程序员自己添加新的注解,并且按自己的方式使用它们。 总而言之,annotation主要目的介于源代码与API文件说明之间。annotation对程序代码做出一些说明和解释。让自己和别人看得方便。

在本次实例代码中,使用了annotation来标注自定义的错误码。具体代码如下:

Error.java 注解的定义

package com.test.util; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * 类名:<br> * 类说明:<br> * * @version V1.0 * @author lu7kang 2011-3-6 */ @Retention(RetentionPolicy.RUNTIME) public @interface Error { String msg() default ""; }

ErrorCode.java 自定义的错误码,使用@Error注解说明错误码

package com.test.util; /** * 类名:管理系统错误码<br> * 类说明:<br> * * @version V1.0 * @author lu7kang 2011-3-6 */ public enum ErrorCode { @Error(msg="请先登录系统") sys_00, @Error(msg="没有权限操作") sys_01, @Error(msg="登录超时") sys_02, @Error(msg="系统异常") sys_03; /** * 返回错误码 */ public String getCode(){ return this.name(); } /** * 返回错误信息 */ public String getMessage(){ Error error = null; try { error = this.getClass().getField(this.getCode()).getAnnotation(Error.class); } catch (Exception e) { return null; } return error.msg(); } }

test.java 测试类

package com.test.util; /** * 类名:<br> * 类说明:<br> * * @version V1.0 * @author lu7kang 2011-3-7 */ public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(ErrorCode.sys_00.getMessage()); System.out.println(ErrorCode.sys_01.getMessage()); System.out.println(ErrorCode.sys_02.getMessage()); System.out.println(ErrorCode.sys_03.getMessage()); } }

运行结果:

请先登录系统
没有权限操作
登录超时
系统异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值