1. 先定义annotation

2. 使用annotation

例子:

import java.lang.annotation.*;

import java.lang.reflect.Method;

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)

@interface Test {

String info() default "";

}

class Annotated {

@Test(info = "AWESOME")

public void foo(String myParam) {

System.out.println("This is " + myParam);

}

}

class TestAnnotationParser {

public void parse(Class clazz) throws Exception {

Method[] methods = clazz.getMethods();

for (Method method : methods) {

if (method.isAnnotationPresent(Test.class)) {

Test test = method.getAnnotation(Test.class);

String info = test.info();

if ("AWESOME".equals(info)) {

System.out.println("info is awesome!");

// try to invoke the method with param

method.invoke(Annotated.class.newInstance(), info);

}

}

}

}

}

public class Demo {

public static void main(String[] args) throws Exception {

TestAnnotationParser parser = new TestAnnotationParser();

parser.parse(Annotated.class);

}

}程序输出:

info is awesome!

This is AWESOME

java annotation 实现_在Java中如何实现自己的annotation相关推荐

  1. java coin介绍_代码示例中的Java 7:Project Coin

    java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...

  2. java final 类_在Java中,final修饰的类有什么特点

    展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...

  3. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创

    由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...

  4. java jar 目录_将Java类路径中的所有jar包括在一个目录中

    有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...

  5. java gradle构建_在Gradle中为JPMS构建Java 6-8库

    java gradle构建 通过提供Java 9 module-info.class了解如何使用Gradle构建支持JPMS( Java平台模块系统 )的Java 6-8库. 介绍 如果您需要JPMS ...

  6. java避免空指针异常_避免Java中的空指针异常

    java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...

  7. ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home

    我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...

  8. java字符串数组排序_在Java中对字符串数组进行排序

    允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayL ...

  9. java 异常对象_在java中的异常处理中的异常对象是什么

    展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...

最新文章

  1. 1. 写出一个能创建多级目录的 PHP 函数(新浪网技术部)
  2. 1036 跟奥巴马一起编程 (15分)——16行代码AC
  3. Java 进程间文件锁FileLock详解
  4. LeetCode MySQL 608. 树节点
  5. 创业中的“孙子兵法”
  6. [深入浅出WP8.1(Runtime)]浮出控件(Flyout)
  7. (转)Hibernate关联映射——对象的三种关系
  8. 个性化推荐从入门到精通(附推荐产品经理修炼秘籍)
  9. stl之map容器的原理及应用
  10. 查看计算机GUID的WMI类
  11. atitit.seo 发帖关键词以及链接的制作.doc
  12. 飞机大战项目(源代码(直接用),有效果图,素材包)
  13. 华为ensp命令大全_从零开始学习华为路由交换 | 配置接口IP
  14. java解析json list
  15. Thematic框架主题结构图
  16. 关于滚动条内子控件控制问题
  17. Python 计算 log以2为底的对数
  18. 3.2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
  19. 六步绘制漂亮思维导图简单画法
  20. elementUI表格中气泡位置偏移

热门文章

  1. 豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
  2. java http 1.1_java11新特性HttpClient
  3. JobDataMap传递参数_02
  4. IntelliJ IDEA 2020.1 瞬间定位文件夹、文件
  5. rsync一行代码实现远程文件同步之修改默认22端口
  6. 开发经验分享_05_葫芦画瓢
  7. Centos7 使用Docker MySQL部署_01
  8. Vue中computed和watch的区别(面试题)
  9. 一元享移动怎么样_中国移动放大招!月租9元享200GB流量,网友:这套路谁敢用?...
  10. oracle 出参类型定义,Oracle plsql出参clob类型的操作