Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2290050
  • 博文数量: 266
  • 博客积分: 5485
  • 博客等级: 大校
  • 技术积分: 3695
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-20 11:05
个人简介

多读书,多做事,广交朋友,趣味丛生

文章分类

全部博文(266)

分类: 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());
    }
 }
 }

}

阅读(2429) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-01-03 15:13:06

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com