java annotation 实现_在Java中如何实现自己的annotation
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相关推荐
- java coin介绍_代码示例中的Java 7:Project Coin
java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...
- java final 类_在Java中,final修饰的类有什么特点
展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...
- java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...
- java jar 目录_将Java类路径中的所有jar包括在一个目录中
有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...
- java gradle构建_在Gradle中为JPMS构建Java 6-8库
java gradle构建 通过提供Java 9 module-info.class了解如何使用Gradle构建支持JPMS( Java平台模块系统 )的Java 6-8库. 介绍 如果您需要JPMS ...
- java避免空指针异常_避免Java中的空指针异常
java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...
- ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home
我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...
- java字符串数组排序_在Java中对字符串数组进行排序
允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayL ...
- java 异常对象_在java中的异常处理中的异常对象是什么
展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...
最新文章
- 1. 写出一个能创建多级目录的 PHP 函数(新浪网技术部)
- 1036 跟奥巴马一起编程 (15分)——16行代码AC
- Java 进程间文件锁FileLock详解
- LeetCode MySQL 608. 树节点
- 创业中的“孙子兵法”
- [深入浅出WP8.1(Runtime)]浮出控件(Flyout)
- (转)Hibernate关联映射——对象的三种关系
- 个性化推荐从入门到精通(附推荐产品经理修炼秘籍)
- stl之map容器的原理及应用
- 查看计算机GUID的WMI类
- atitit.seo 发帖关键词以及链接的制作.doc
- 飞机大战项目(源代码(直接用),有效果图,素材包)
- 华为ensp命令大全_从零开始学习华为路由交换 | 配置接口IP
- java解析json list
- Thematic框架主题结构图
- 关于滚动条内子控件控制问题
- Python 计算 log以2为底的对数
- 3.2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
- 六步绘制漂亮思维导图简单画法
- elementUI表格中气泡位置偏移
热门文章
- 豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
- java http 1.1_java11新特性HttpClient
- JobDataMap传递参数_02
- IntelliJ IDEA 2020.1 瞬间定位文件夹、文件
- rsync一行代码实现远程文件同步之修改默认22端口
- 开发经验分享_05_葫芦画瓢
- Centos7 使用Docker MySQL部署_01
- Vue中computed和watch的区别(面试题)
- 一元享移动怎么样_中国移动放大招!月租9元享200GB流量,网友:这套路谁敢用?...
- oracle 出参类型定义,Oracle plsql出参clob类型的操作