在编写注解的时候需要了解的四种注解:

@Target

表示该注解可以用于什么地方,可能的ElementType参数有:

CONSTRUCTOR:构造器的声明

FIELD:域声明(包括enum实例)

LOCAL_VARIABLE:局部变量声明

METHOD:方法声明

PACKAGE:包声明

PARAMETER:参数声明

TYPE:类、接口(包括注解类型)或enum声

@Retention

表示需要在什么级别保存该注解信息。可选的RetentionPolicy参数包括:

SOURCE:注解将被编译器丢弃

CLASS:注解在class文件中可用,但会被VM丢弃

RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息。

@Document

    将注解包含在Javadoc中

@Inherited

    允许子类继承父类中的注解

定义一个注解:

package com.rhythmk.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; @Target(value = ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RService { String[] value() default "working"; RunEnum Run();
}

注解使用:

@RService(value={"v1","v2"},Run=RunEnum.Run)
public interface UserService { String findUserById(int id); String saveUser(String userName);
}

通过isAnnotationPresent 判断该类是否存在某注解:

        Class<?> usCls = UserService.class;
// 判断改类是否使用了该注解
boolean isAnnotationRService = usCls
.isAnnotationPresent(RService.class);

获取该类注解配置的数值:

    RService rService = UserService.class.getAnnotation(RService.class);
for (String v : rService.value()) {
System.out.println("注解Value:" + v);
} System.out.println("枚举:" + rService.Run());

最新文章

  1. HTML 事件(三) 事件流与事件委托
  2. SSH免密码登录
  3. javascript实现简单多文件上传
  4. jQuery中animate的height的自适应
  5. golang学习之旅:官方文档汇总
  6. 阿里云ubuntu环境笔记
  7. HTML5——购物车
  8. Objective-C 【单个对象内存管理(野指针&amp;内存泄露)】
  9. Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法
  10. UVA LA 7146 2014上海亚洲赛(贪心)
  11. 怎样将IPhone应用程序软件公布到应用程序商店?
  12. Swift 入门之简单语法(四)
  13. canvas 从初级到XX 2# 让我们在之前的基础之上,再迈进一步吧 [中级向] (上)
  14. java中的@Override标签
  15. TProfiler部署文档--笔记
  16. Django的admin相关
  17. fiddler 一些不为人知的功能
  18. Burp Suite之Intruder模块(四)
  19. 《HTTP - 概述》
  20. SQL Server 子查询错误:No column name was specified for column 2 of &#39;a&#39; error (转载)

热门文章

  1. 微信公众号开发之微信JSSDK
  2. BigDecimalUtils BigDecimal加减乘除
  3. Linux Mint 18.1安装nvidia驱动
  4. LINUX QQ
  5. vue2 过渡动画
  6. Eclipse中配置Solr源码
  7. jsp登录页面,展示错误信息,刷新页面后错误依然存在解决方案
  8. L201
  9. timer Compliant Controller project (3)--bom and sch
  10. New Concept English Two 10 25