Java代码中注解相关说明及注解机制相关说明

转自:

Java代码中注解相关说明及注解机制相关说明

注解的相关概念说明

注解是一种符号,用于在类,方法,参数,属性,构造器上面

注解用途:
    1.使用javadoc生成文档,常用的有@param @return等 

    2.代替配置文件的作用,如:enable**,config ,mybatis,spring等框架的一些设置-采用这种方式可减少配置文件的编写
     
    3.代码重写标志,如:@override 

java注解的底层实现原理

在Java中注解是使用反射实现其功能
Java注解也可以自定义

申明注解和接口非常的类似,
    申明注解类采用@interface关键字

注解类注意事项:
     注解类中,只支持基本类型、String及枚举类型,
      注解类中所有属性被定义成方法,并允许提供默认值

自从java 5.0开始,
在java.lang.annotations中提供了四种元注解,
专门注解其他的注解:

@Target?注解用于什么地方
TYPE给类(型)注解
FIELD给字段注解,不要忘了,字段可以是对象
METHOD给方法注解
PARAMETER给参数注解
CONSTRUCTOR给构造方法注解
LOCAL_VARIABLE给局部变量注解
ANNOTATION_TYPE给注解注解(这貌似把自己不当类来看)
PACKAGE给包注解
@Retention注解运行状态
SOURCE,源码状态运行,
CLASS,编译类文件时运行
RUNTIME运行时运行
@Documented生成说明文档,添加类的解释
@Inherited允许子类继承父类中的注解

例: 自定一个注解类的示例

/*定义注解类文件 userAnnotation.java*/

package com.java265.helloworld.other;

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.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface userAnnotation {

	String Info() default "java265.com自定义注解测试";
}



/*定义注解使用类 user.java*/
package com.java265.helloworld.other;

@userAnnotation
public class user {

}


/*testMain.java*/

package com.java265.helloworld.other;

import java.lang.annotation.Annotation;

public class testMain {

	public static void main(String[] args) throws ClassNotFoundException {
		// TODO Auto-generated method stub

		Class classTest = Class.forName("com.java265.helloworld.other.user");
		Annotation[] tAll = classTest.getAnnotations();
		for (Annotation t : tAll) {
			userAnnotation t1 = (userAnnotation) t;
			System.out.println(t1.Info());
		}
	}

}

 
--------输出信息------
java265.com自定义注解测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值