多读书,多做事,广交朋友,趣味丛生
分类: Java
2010-12-30 15:41:07
@Override:表示当前的方法定义将覆盖超类中的方法.如果你不小心拼写错误,或者方法签名对不上被覆
盖的方法,编译器就会发出错误提示
@Deprecated:如果程序员使用了注解为它的元素,那么编译器就会发出警告信息
@SupperessWarnings:关闭不当的编译器警告信息.
Java SE5内置四种元注解
@Target:表示该注解可以用于什么地方.可能的ElementType参数包括:
1)CONSTRUCTOR:构造器的声明
2)FIELD:域声明(包括enum实例)
3)LOCAL_VARIABLE:局部变量声明
4)METHOD:方法声明
5)PACKAGE:包声明
6)PARAMETER:参数声明
7)TYPE:类、接口(包括注解类型)或enum声明
@Retention:表示需要在什么级别保存该注解信息.可选的RetentionPolicy参数包括:
1)SOURCE:注解将被编译器丢弃
2)CLASS:注解在class文件中可用,但会被VM丢弃
3)RUNTIME:VM将在运行期也保留注解,因此可以通过反射机制读取注解的信息
@Documented:将此注解包含在Javadoc中
@Inherited:允许子类继承父类中的注解
例子:
package com.bitlanyuan.car.junit;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Copyright {
String value();
}
package com.bitlanyuan.car.junit;
import java.lang.reflect.Method;
public class AnnotationDemo {
@Copyright("copyright 2010 理工篮园")
public void test() {
System.out.println("copyright 2010 理工篮园");
}
/**
* @param args
*/
public static void main(String[] args) {
Class clazz = AnnotationDemo.class;
Method[] methods = clazz.getMethods();
for(Method m : methods) {
if(m.getName().equals("test")) {
Copyright copyright = m.getAnnotation(Copyright.class);
System.out.println(copyright.value());
}
}
}
}
chinaunix网友2011-01-03 15:13:06
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com