Java反射机制实现取得指定Annotation

本文通过一个具体的Java示例展示了如何定义自定义注解并利用反射机制获取这些注解的信息。示例中定义了一个名为MyAnnotation的自定义注解,并在Info类的方法mytoString上应用了该注解。随后通过GetAnnotation类中的main方法演示了如何读取并打印出这个注解的具体内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 代码

//定义该自定义注解的保存范围是RUNTIME
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation
{
    public String key();
    public String value();
}

class Info{
    //给mytoString方法定义了3个注解
    @Deprecated
    @SuppressWarnings(value = "This is a waring!")
    @MyAnnotation(key="one",value = "test")
    public String mytoString(){
        return "hello MyAnnotation";
    }
}

class GetAnnotation{
    public static void main(String[] args) throws Exception
    {
        Class<?> cls=Class.forName("Info");
        Method toStringMethod=cls.getMethod("mytoString");
        //判断该方法上是否有指定类型的注解存在
        if(toStringMethod.isAnnotationPresent(MyAnnotation.class))
        {
            //声明MyAnnotation对象
            MyAnnotation my=null;
            my=toStringMethod.getAnnotation(MyAnnotation.class);
            //获得该注解变量,并打印输出
            String key=my.key();
            String value=my.value();
            System.out.println(key+"->"+value);
        }
    }
}

二 运行结果

one->test

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值