- 浏览: 333615 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (140)
- oracle (2)
- j2se (18)
- 应用服务器 (2)
- 操作系统 (21)
- j2ee (3)
- web (9)
- Junit (0)
- 项目 (0)
- IDE (0)
- 五花八门 (1)
- excel导入导出 (0)
- DWR (0)
- display标签总结 (0)
- JS (7)
- FCKeditor (0)
- Spring (3)
- webservice (1)
- JVM (14)
- 传输协议 (6)
- maven (3)
- 服务器 (2)
- 数据结构 (11)
- HTTPClient (2)
- JQUERY (9)
- 设计模式 (4)
- 数据库 (6)
- 看书笔记 (0)
- 工具 (4)
- MINA (3)
- mysql (5)
- jetty (1)
- JAVA网络编程 (7)
- Hessian (1)
- ibatis (1)
- socket (4)
- Native (1)
- http (2)
- nosql (2)
- linux (1)
- hadoop (1)
最新评论
-
applezjv:
可以...
maven常见问题 -
andyboy_bin:
p
Jetty -
ye_wx:
...
TableSpace -
ye_wx:
TableSpace -
极限_裁决:
引用第二:不要把“好像”;“有人会……”;“大概”;“晚些时候 ...
可以让你少奋斗10年的工作经验
自定义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
发表评论
-
java枚举Enum
2013-01-14 14:43 1228public class TestEnum { /* ... -
Java 动态代理机制分析及扩展,第 1 部分
2012-03-26 12:47 783引言 Java 动态代理机制的出现,使得 Java 开 ... -
详解reflect Java的反射机制
2012-03-23 13:09 1027一、类型识别的两种方式: 首先了解一下“运 ... -
Annotation 之 jdk1.5内建的Annotation实例
2011-11-15 20:25 894一、限定Override父类方法@Override ja ... -
Java Annotation
2011-11-14 22:04 0Java Annotation手册 ... -
集合类源码
2011-11-06 04:04 1013主要包括Java类库中提供的几个具体的类: LinkedLis ... -
ArrayList和Vector以及HashTable和HashMap区别
2011-10-12 10:40 1035ArrayList和Vector以及HashTable和Has ... -
JVM优化配置
2011-08-20 22:32 850JVM 优化配置 ... -
JVM慢慢琢磨
2011-08-20 22:05 935原文:http://www.iteye.com/ ... -
堆栈区别
2011-08-18 22:23 871原文:http://www.iteye.com/topi ... -
JVM闲谈
2011-08-18 22:01 790java中内存分为堆内存和栈内存。 Java把内存划分成两 ... -
堆和栈的区别
2011-08-03 00:27 858堆和栈的区别 一、预备知识—程序的内存分配 一个由 ... -
JVM 四
2011-08-02 18:22 796转自:http://blog.csdn.net/cute ... -
JVM
2011-08-02 18:20 164本文转自:http://blog.csdn.net/cu ... -
关于byte
2011-08-02 18:16 10301GB=1024MB=1024*1024KB=1024*102 ... -
jvm垃圾回收
2011-07-31 23:13 753Java里的对象并非总是被 ... -
String与StringBuffer的区别
2011-06-22 14:37 460String和StringBuffer的区别,网上资料可以说是 ... -
序列化
2009-10-11 22:13 1775序列化 (serialization) 将对象的状 ... -
去字符串中的回车 换行 空格的方法
2009-10-09 17:37 0import java.util.List; import ... -
去字符串中的回车 换行 空格的方法
2009-10-09 17:37 0import java.util.List; import ...
相关推荐
自定义Annotation允许开发者创建自己的注解类型,以满足特定的需求或规范,例如记录代码元信息、实现代码生成、运行时检查等。下面我们将深入探讨自定义Annotation的例子及其相关知识点。 首先,了解如何定义一个...
在IT行业中,自定义注解(Annotation)是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,增强了代码的可读性和可维护性。这些元数据可以被编译器或运行时环境用来执行特定的任务,例如代码分析、...
本教程将通过一个简单的自定义Annotation注解示例——`CustomAnnotationDemo`,帮助新手了解如何创建和使用自定义注解。 首先,让我们看看如何定义一个自定义注解。在Java中,注解的定义使用`@interface`关键字。...
Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等 在实际的开发项目中,一个对外裸露的接口往往会濒临无数次哀求,我们来说明一下幂等的概念:随意多次执行所产生的影响均与一次执行的影响相同。根据这...
总结一下,自定义Annotation的关键步骤包括:创建一个遵循`MKAnnotation`协议的类,重写`mapView(_:viewFor:)`以定制视图,处理点击事件,以及将Annotation添加到地图上。通过这些步骤,开发者可以自由地在地图上...
### Java自定义注解Annotation的使用 #### 1. 前言 自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,...
在本主题中,我们将深入探讨如何创建和使用自定义的`annotationProcessor`,以及它在IDEA中的应用。 首先,让我们了解什么是`annotationProcessor`。`annotationProcessor`,也称为注解处理器,是在Java编译过程中...
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...
【接口幂等性概念】 接口幂等性是软件设计中的一个重要原则,它指的是一个接口被多...Spring Boot结合Redis和自定义Interceptor,能够有效地确保接口幂等性,防止重复处理和数据不一致,从而提高系统的稳定性和可靠性。
自定义Annotation实际上自动继承了`java.lang.annotation.Annotation`接口,但不能继承其他Annotation类型或接口。这使得Annotation成为一种单继承的类型。 总之,Annotation技术是Java编程中的一个强大工具,它...
本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和自定义 Annotation 验证。 一、Spring MVCAnnotation 验证简介 Spring MVC 框架提供了多种Annotation来实现验证,...
本文将重点介绍Java 1.5及以后版本中内置的三种常用注解类型及其应用方式,并进一步探讨如何自定义Annotation。 **1.1 @Override 注解** - **定义**:`@Override`注解用于标记重写(override)父类的方法。它只...
通过自定义Annotation和对应的处理器,开发者可以构建出更智能、更安全的工具链,甚至可以替代一些传统的代码生成工具,如XDoclet。了解和熟练掌握Annotation的使用,对于提升Java开发效率和代码质量至关重要。
2. 自定义Annotation:自定义Annotation需要定义一个接口,这个接口就是Annotation类型。通过定义成员变量(通常带有默认值),可以为Annotation添加特定的元数据。自定义Annotation可以通过`@interface`关键字创建...
@Target:用于描述注解的使用范围,如果自定义注解不存在@Target,则表示该注解可以使用在任何程序元素之上。接收参数ElementType,其值如下: /**接口、类、枚举、注解**/ ElementType.TYPE /**字段、枚举的常量**/...
自定义Annotation通常需要与Annotation处理器配合,如Java的Apt工具,它可以扫描源代码,根据Annotation执行相应操作,例如验证非空约束。 四、Annotation的应用场景 - **编译时检查**:如`@NonNull`可以提示...
自定义 Annotation 的创建涉及到定义 Annotation 类型和实际使用 Annotation。定义 Annotation 类型时,使用 `@interface` 关键字: ```java public @interface MyAnnotation { String value() default ""; } ``` ...
5. **自定义Annotation**:从Java 6.0起,开发者可以创建自己的Annotation类型,定义特定的元信息。这使得开发人员能够创建特定于应用程序的Annotation,用于各种目的,如验证、持久化、事务管理等。 6. **...