java如何获取加注解的类和注解的属性值

本文介绍了Java中如何通过反射获取加注解的类及其注解属性值。以一个实例说明,通过调用getAnnotation方法可以简单实现这一功能,例如在SpringMVC中注解的value值会被存入map供访问。详细步骤包括在类中使用注解,然后通过指定泛型限定的Class<?>调用getAnnotation避免编译错误。
摘要由CSDN通过智能技术生成

在java中,如果我们对一个类或者方法加了注解,那么是可以获取到这个注解的属性值的,最明显的例子就是在springMVC中,当我们使用@RequestMapping(value="")的时候,spring会将我们填写的value值当作路径存放在map结构中供我们访问。那么这一点是如何实现的呢?

非常简单,我们只要使用getAnnotation这个方法就可以了,我们来看一个例子就明白了:

import java.lang.annotation.*;
/**
 * 这是自定义注解的类
 */
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyRequestMapping
{
    String value(); // 这是注解的一个属性字段,也就是我们使用注解时填写在括号里的参数
}

现在我们在TestController中使用这个注解:

@MyRequestMapping("/test")
    public void test()
    {
        System.out.println("=============test==============");
    }

我们只需要通过下面的代码,就可以获取到我们输入的value的值了

Class<?> c = TestController.class;
MyRequestMapping baseRequestMapping = c.getAnnotation(MyRequestMapping.class);

System.out.println(baseRequestMapping.value); // 输出value的值

注意!这里的Class<?>中的<?>是必须写的,你可以把?改成要限定的类型,但是必须要写这个泛型限定才行,不然java编译会报错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值