自定义Annotation
早就知道jdk5加了新特性Annotation,但是没研究过,前几天公司培训,有一部分是介绍jdk5新特性的,一个是注解一个泛型
今儿复习一下注解
    //用@Deprecated声明该方法不建议使用
    @Deprecated public void doSomething1(){
        Map map = new HashMap();
        map.put("some", "thing");
        System.out.println(map);
    }
    
    //用@SuppressWarnings声明不再进行类型检查
    @SuppressWarnings(value={"unchecked"})
    public void doSomething2(){
        Map map = new HashMap();
        map.put("some", "thing");
    }

写一个自定义注解先
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//要在运行时使用这个注解,必须声明成RUNTIME
Annotation分为三种级别:RUNTIME、CLASS、SOURCE
@Retention(RetentionPolicy.RUNTIME)
public @interface SomeAnnotation{
    String value();
    String name();
}

下面来使用这个自定义注解:
import java.lang.reflect.Method;
public class AnnotationTest {
    
    @SomeAnnotation(value="value1",name="name1")
    public void doSomething3(){
        
    }
    
    public static void main(String[] args){
    
        Class<AnnotationTest> c = AnnotationTest.class;
        try {
            //利用反射得到方法doSomething3
            Method method = c.getMethod("doSomething3");
            //查找doSomething3方法是否有SomeAnnotation的Annotation
            if(method.isAnnotationPresent(SomeAnnotation.class)){
                System.out.println("找到SomeAnnotation");
                //得到SomeAnnotation
                SomeAnnotation annotation = method.getAnnotation(SomeAnnotation.class);
                System.out.println("annotation.value="+annotation.value());
                System.out.println("annotation.name="+annotation.name());
            }else{
                System.out.println("没有找到omeAnnotation");
            }
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}

输出结果:
找到SomeAnnotation
annotation.value=value1

annotation.name=name1

本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/635043,如需转载请自行联系原作者

自定义Annotation相关推荐

  1. java简单自定义Annotation

    为什么80%的码农都做不了架构师?>>>    原文内容比较多,这里就简单地说一下.java 5以后增加了3个annotation, @Override @Deprecated @S ...

  2. Java注解Annotation的用法 - 自定义Annotation实现

    Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据. Java语言中的类.方法.变量.参数和包等都可以被标注.和Javadoc不同,Java标注可以通过反射获取标 ...

  3. 使用自定义annotation接口进行aspectj动态缓存

    由于系统需求需 要对各个接口进行key-value缓存(以参数为key,返回的对象为value),当然对于这种情况首先考虑到的是使用aop,前段时间看过 aspectj的一些介绍,借此机会正好加以应用 ...

  4. java 定义动态接口_使用自定义annotation接口进行aspectj动态缓存

    packagecom.***.shine.aspectj; @AspectpublicclassMethodCacheAspectJ { Log logger=LogFactory.getLog(Me ...

  5. Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求, ...

  6. Spring Boot中使用自定义Annotation来实现接口自动幂等

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | jianshu.com/p/c806003a8 ...

  7. 如何防止token被拦截_Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等

    今天主要给大家介绍使用springboot和拦截器.redis来优雅的实现接口幂等.正文开始: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生 ...

  8. java自定义annotation_Java自定义annotation | 学步园

    1. Annotation需要声明为@interface 2.@Target:  表示该注解可以用于什么地方.可用ElementType枚举类型主要有: TYPE : 类.接口或enum声明 FIEL ...

  9. Java自定义Annotation方法

    2019独角兽企业重金招聘Python工程师标准>>> 1. 基本语法 Java代码 import java.lang.annotation.ElementType; import ...

最新文章

  1. mysql web备份软件_Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)
  2. gperf工具的使用
  3. 计算机三级会保研加分吗,366所高校有保研资格,除了对成绩有要求外,还有哪些要求?...
  4. pytorch:加载预训练模型(多卡加载单卡预训练模型,多GPU,单GPU)
  5. 使用jquery datatables插件遇到fnReloadAjax的问题
  6. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令
  7. [团队项目]英语学习助手之 NABC 模型
  8. 关于win10专业版无法下载暴雪战网的解决方案
  9. P1192 台阶问题
  10. 链游界王炸巨作 一个足够炫酷的NFT赛犬游戏震撼问世
  11. 2017中兴算法挑战赛(迪杰斯特拉)
  12. Mac关闭某个软件的所有窗口
  13. 切换窗口快捷键 你知道吗?
  14. 《置身事内》读书笔记第一章 地方政府的权利与事务
  15. 数据可视化:科研论文配色
  16. python设置文件权限_python通用权限框架
  17. OneDrive登录问题
  18. java实现word文档转pdf,并添加水印
  19. 一段php代码,请问一段PHP代码是什么意思?
  20. tomcat 解决startup启动乱码

热门文章

  1. 预发布环境,Tag发布机制和可重复的部署过程
  2. 个人博客前端模板_博客设计——概述
  3. Intellij IDEA运行报Command line is too long解法
  4. SqlServer中获取所有数据库,所有表,所有字段
  5. 深入理解 Java 内存模型(转载)
  6. JAVA----------------------华为机试--------------------------删除字符串中出现次数最少的字符...
  7. 机器学习 Softmax classifier (无隐含层)
  8. 转载:T-SQL语句大全
  9. Golang gRPC 示例
  10. 手机视频直播解决方案