自定义Annotation
来源:互联网 发布:测脸型的软件 编辑:程序博客网 时间:2024/06/05 04:47
自定义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
早就知道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 Annotation & 自定义Annotation
- Annotation-自定义Annotation
- Annotation--自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- 自定义Annotation
- Annotation--学习:自定义annotation类型
- 自定义Annotation (转载)
- 自定义Annotation类型
- 自定义Annotation入门例子
- 提高Windows XP网速的有效方法
- FCF中文指南-第一章--FusionCharts Free介绍
- count(*)与count(1)的区别有多大?
- C语言中__T的作用
- jQueryUI Autocompelete事件Event详解
- 自定义Annotation
- FCF中文指南-第二章--FusionCharts Free安装
- 【串和序列处理 2】Trie Tree 串集合查找
- 三种方法 在Linux里设置环境变量的方法(export PATH)
- DataGridView排序後,如何抓取綁定資料的正確索引值
- 老男孩歌词--永恒的记忆
- Ogre SkyBox构建、渲染
- .net使用免费开源类库操作Excel
- 有道词典的API使用 C#