枚举类:
package com.sharp.shiro.vo;
public enum Sex{
MALE("man"), FEMALE("woman");
String age;
private Sex(String age){
this.age = age;
}
}
annotation类:
package com.sharp.shiro.vo;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 自定义Annotation
* @author WalkingDog
*
*/
@Target(value = {ElementType.TYPE, ElementType.FIELD,
ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Many {
String name();
Sex sex();
}
操作类:
/**===========================================
* Copyright (C) 2013 Tempus
* All rights reserved
*
* 项 目 名: shiroDemo
* 文 件 名: TestMain.java
* 版本信息: V1.0.0
* 作 者: peng.xiao
* 日 期: 2013-1-18-下午12:54:23
*
============================================*/
package com.sharp.shiro.vo;
import java.lang.reflect.Method;
/**
* 类 名 称: TestMain
* 类 描 述:
* 创 建 人: peng.xiao
* 创建时间: 2013-1-18 下午12:54:23
*
* 修 改 人: peng.xiao
* 操作时间: 2013-1-18 下午12:54:23
* 操作原因:
*
*/
public class TestMain
{
@Many(name="xiaopeng",sex=Sex.FEMALE)
public void testadd(){
}
public static void main(String[] args) throws Exception
{
Method method = new TestMain().getClass().getDeclaredMethod("testadd");
System.out.println(method.isAnnotationPresent(Many.class));
Many annotation = method.getAnnotation(Many.class);
System.out.println(annotation.name());
System.out.println(annotation.sex().age);
}
}
打印结果:
true
xiaopeng
woman