Java简单注解

  注解不同于注释,注释的作用是记录解释程序某部分的作用,或是为了生成帮助文档。而注解则是通过编译器识别注解,编译器再进行相应操作。

  编译器处理注解有三种策略:

   1)将注解保留在编译后的类文件中,并在第一次加载类时读取它
   2)将注解保留在编译后的类文件中,但是在运行时忽略它
   3)按照规定使用注解,但是并不将它保留到编译后的类文件中
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class AnnotationTest
{
	private String name;
	
	AnnotationTest(String name)
	{
		this.name = name;
		
		System.out.println("Custractor");
	}
	@Override//重写父类或接口的方法
	public String toString()
	{
		return this.hashCode()+"";
	}
	@SuppressWarnings("deprecation")//不建议被使用的方法
	public String getTime()
	{
		return new Date().toLocaleString();
	}
	@SuppressWarnings("unchecked")//不检查某个字段的警告信息
	public String getArray()
	{
		@SuppressWarnings("rawtypes")//不检测泛型警告
		
		List list = new ArrayList();
		
		list.set(0, "List 0");
		
		return list.get(0).toString();
	}
	@MyOverride("Medivh")//等同于@MyOverride
	public String toName()
	{
		return "Medivh";
	}

	public String getAddress()
	{
		return "Shanghai";
	}
	@Another(value = "Hello")
	public static void main(String[] args) throws Exception
	{
		AnnotationTest test = new AnnotationTest("Medivh");
		
		System.out.println(test.name.toString());
		
		System.out.println(test.toName());
		
		System.out.println(test.getAddress());
		
	    System.out.println(test.getTime());
	}
}
@interface MyOverride//自定义注解,含默认参数
{
	String value() default "Medivh";
}
@interface Another//自定义注解,需要自定义参数
{
	String value();
}

运行结果:

Custractor
Medivh
Medivh
Shanghai
2014-4-21 15:27:08

原文地址:https://www.cnblogs.com/MedivhQ/p/4074982.html