黑马程序员——JAVA高新技术---注解Annotation---概述,java的三种注解,元注解

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

第一讲. 概述

  1. 注解是JDK1.5引入的新特性之一,是很重要的概念
  2. 注解的写法 @interface,里面可以声明一些属性,可以为其设置default值
    @interface MyAnnotation{
    	String color() default "blue";
    	String value();
    }
  3. 注解的用法 :通过反射操作可以获取注解中的属性       
                                                      

第二讲.java的三种注解——SupressWarnings、Deprecated、Override

  1. SuppressWarnings
  2. Deprecated
  3. Override
class  AnnotationDemo
{
	@SuppressWarnings("deprecation")//抑制过时warnings
	public static void main(String[] args) 
	{	MyAnnotation an=null;
		if(AnnotationDemo.class.isAnnotationPresent(MyAnnotation.class))
			an=(MyAnnotation)AnnotationDemo.class.getAnnotation(MyAnnotation.class);
		System.out.println(an.color());
	}

	@Deprecated//在别的类引用时,编译时会有过时warnings
	public static void sayHi(){
		System.out.println("Hi,Boy");
	}
	@Override//覆写声明,否则编译报错
	public boolean equals(Object obj){return this==obj;}
}

第三讲. 元注解
  1. @Retention
    @Retention(RetentionPolicy.RUNTIME)//注解的生命周期
    //RetentionPolicy.SOURCE:java源文件,编译器看的。如Override,Suppresswarning,
    //RetentionPolicy.CLASS(默认):  .class文件
    //RetentionPolicy.RUNTIME:内存中。如Deprecated,因为它需要通过反射查看注解信息
  2. @Target
    @Target({ElementType.METHOD,ElementType.TYPE})//
    //METHOD代表函数,其他还有
    //ANNOTATION_TYPE:注释类型声明 
    //CONSTRUCTOR 构造方法声明 
    //FIELD 字段声明(包括枚举常量) 
    //LOCAL_VARIABLE 局部变量声明
    //PACKAGE 包声明 
    //PARAMETER 参数声明  
    //TYPE代表:类、接口(包括注释类型)或枚举声明
    //顺便说一下type接口,它代表java类型,包括类、接口、注解、枚举这些

例子

import java.lang.annotation.*;
@MyAnnotation("abc")//只有value属性需要赋值时,可以只写值
//MyAnnotation(value="abc")
class  AnnotationDemo
{
	@SuppressWarnings("deprecation")//抑制过时warnings
	public static void main(String[] args) 
	{	MyAnnotation an=null;
		if(AnnotationDemo.class.isAnnotationPresent(MyAnnotation.class))
			an=(MyAnnotation)AnnotationDemo.class.getAnnotation(MyAnnotation.class);
		System.out.println(an.color());
	}

}
//元注解,注解的注解
@Retention(RetentionPolicy.RUNTIME)//注解的生命周期
@Target({ElementType.METHOD,ElementType.TYPE})
@interface MyAnnotation{
	String color() default "blue";
	String value();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值