注解的一个示例

package com.james.annotation;

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 Description {
	String value();
}

是定义对类的注解

package com.james.annotation;

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 Name {
	String originage();
	String community();
}
是定义对方法的注解


package com.james.annotation;

@Description(value="This is James' community!")
public class Mycommunity {
	
	@Name(originage="james",community="DP")
	public String getName(){
		return null;
	}
	
	@Name(originage="cindy",community="TX")
	public String getName2(){
		return null;
	}

}
将注解应用于类和方法


package com.james.annotation;

import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Set;

public class TestAnnotation {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		String className = "com.james.annotation.Mycommunity";
		Class cla = Class.forName(className);
		Method[] methods = cla.getMethods();
		boolean flag = cla.isAnnotationPresent(Description.class);
		if(flag){
			Description des = (Description)cla.getAnnotation(Description.class);
			System.out.println("描述:"+des.value());
			System.out.println("-------------------");
		}
		
		Set<Method> set = new HashSet<Method>();
		for(int i=0;i<methods.length;i++){
			boolean methodFlag = methods[i].isAnnotationPresent(Name.class);
			if(methodFlag) set.add(methods[i]);
		}
		
		for (Method m:set){
			Name name = m.getAnnotation(Name.class);
			System.out.println("Org: "+name.originage());
			System.out.println("Comm: "+name.community());
		}
		
		
	}

}
分别获取类和方法的注解信息!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值