如何得到一个方法上面的注解

问题描述

如何得到一个方法上面的注解

如题,我自定义了一个注解类 @ AuditAttribute

我在java实体类的get方法上面加上这个注解,然后用
Annotation annotation = f.getAnnotation(AuditAttribute.class);
Annotation[] methodAnnotations = method.getAnnotations();
这样来取,不管是取多个还是取一个,取到的总是null 这是为什么?

解决方案

这个是我写的你看看
public class Person {

private String id ;
@Scope("prototype")
public String getId(){
return id ;
}

}

public static void test(Object obj){
Method[] method = obj.getClass().getDeclaredMethods();// 获取所有方法
for (java.lang.reflect.Method m : method) {

 System.out.println(m.getName());

 if (m.getName().startsWith("get")) {// 取方法名为get...的

  if(null != m.getDeclaredAnnotations()){
      System.out.println("--111--"+m.getName());
      Annotation[] ano = m.getDeclaredAnnotations();
      System.out.println("--222--"+ano[0]); 

 }

     public static void main(String[] args) throws NoSuchMethodException, SecurityException{
       test(new Person());
}

    -------------------------打印结果
    getId

--111--getId
--222--@org.springframework.context.annotation.Scope(proxyMode=DEFAULT, value=prototype)

解决方案二:

那是因为你用错了

getDeclaredAnnotations()就可以了

你取这个method的时候使用的是getDeclaredMethod
不是 getMethod吧
这个注解和method的获取是类似的

解决方案三:

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/annotation/AnnotationUtils.html
spring的这个类的源代码,兴许能帮到你哦~

解决方案四:

请问你的问题解决了吗?

解决方案五:

Method[] method = obj.getClass().getMethods();// 获取所有方法
for (java.lang.reflect.Method m : method) {

System.out.println(m.getName());

if (m.getName().startsWith("get")) {// 取方法名为get...的

if(null != m.getAnnotation(AuditAttribute.class)){

System.out.println("--111--"+m.getName());

} if(null != m.getDeclaredAnnotations()){

System.out.println("--111--"+m.getName()); }

Object value = m.invoke(obj);// 执行

String fildName = m.getName(); beanMap.put(fildName, value); } }

时间: 2024-10-21 18:14:17

如何得到一个方法上面的注解的相关文章

spring中如何获取注入bean里方法上的注解?

问题描述 spring中如何获取注入bean里方法上的注解? 有这样一个需求,在spring中,想用反射获取一个注入bean中方法的注解 一般情况下这样的操作就行了: Method method = bean.getClass().getMethod(...); Annotation[] annotations = method.getAnnotations(); 这样就能获取注解了. 但在spring中,这种方法是获取不到annotation的,原因是这里的bean其实是一个代理类.那么问题来

winform-将Main方法上面的[STAThread]去掉,对整个C/S项目有影响吗?

问题描述 将Main方法上面的[STAThread]去掉,对整个C/S项目有影响吗? C# Winform项目,在Program.cs文件中,将Main方法上面的[STAThread]去掉了,对这个C/S项目中其他form窗体的运行或其他功能有影响吗?请各位帮忙看看,对整个工程的正常运行或性能有影响吗?谢谢! 代码如下://////应用程序的主入口点./////[STATread] 已注释掉static void Main(){... } 解决方案 可能有,可能没有,取决于你有没有用第三方的组件

如何清除一个event上面的所有引用?

问题描述 一个类实现了一个接口,这个接口中有ClearEventHandler函数,意思是要把所有接受这个event的类都清除掉,就是再发event,那些类的事例也不能接受了,如何来做呢?搜了半天没搜到 解决方案 解决方案二:触发事件的时候判断是否触发就可以了.清除的话可以用event-=委托.解决方案三:假如这个方法和这个event是在同一个类里声明的话,你可以这么做:publiceventEventHandlerMyEvent;publicvoidClearEventHandlers(){f

利用反射获取类或者方法或者字段上的注解的值

从JDK1.5之后,注解在各大框架上得到了广泛的应用.下面这个例子中,你可以判断一个类或者方法或者字段上有没有注解,以及怎么获取上面的注解值.话不多说,代码如下: AnnotationTest01.java package com.zkn.newlearn.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.R

【lombok】lombok---帮你简化生成必要但臃肿的java代码工具 【映射注解和lombok注解同时使用 以及 映射注解放在属性和get方法上的区别】

官方地址:https://projectlombok.org/ GitHub:https://github.com/rzwitserloot/lombok 指导说明文档:http://jnb.ociweb.com/jnb/jnbJan2010.html =============================================================================================================== 本来来说,lombok

封装ThinkPHP的一个文件上传方法实例_php实例

本文实例讲述了封装ThinkPHP的一个文件上传方法,分享给大家供大家参考.具体如下: 这阵子,对WBlog的上传功能作了优化.改进后的上传功能可以实现缩略图上传,图片上传,生成水印,文件上传,并且可以在后台对上传的附件进行大小(文件大小),类型(文件类型),水印(针对图片)的进行设置.此外还可以对上传的文件进行分类保存到相应的文件夹里,方便管理. 下面是对改进后的上传功能作简约的说明. 缩略图上传 先前的缩略图上传功能使用了KindEditor的上传组件,除非上传之前对图片进行缩略处理,不然上

javascript做计算器-用javascript做一个计算器怎样才能让数字按键上的数字显示在上面的文本框中

问题描述 用javascript做一个计算器怎样才能让数字按键上的数字显示在上面的文本框中 用javascript做一个计算器怎样才能让数字按键上的数字显示在上面的文本框中 解决方案 参考这个完整的例子 <html> <head> <title>JS版计算器</title> <link rel="stylesheet" type="text/css" href=""> <meta

OA中总结:s:select,关于使用modelDriven,项目分层,@Transactional,jspf,各个层上配置注解交给spring管理的方法,简单的OGNL表达式写法

%<s:select> list:需要进行迭代的list集合 listKey:需要提交的值 listValue:需要在页面上显示的值============================优化1.ActionAction中存在重复的代码 从DepartmentAction/RoleAction/UserAction中抽取一个公共的BaseAction. 1.BaseAction中使用泛型,泛型的具体类型(Class)通过在构造方法中得到. 如果model为null,就用具体类型newInsta

ios-iOS中UIWwebView上面的点击怎么跳转到一个UIViewController?

问题描述 iOS中UIWwebView上面的点击怎么跳转到一个UIViewController? 1. 2. 3. 4. 解决方案 用oc与js交互方法可以.你搜索一下吧. 解决方案二: 点击radio跳转到另一个页面 解决方案三: js 交互 获取到你想要的按钮(点击位置) 做跳转