首页 > 代码库 > 获取Java类中注解的详细信息
获取Java类中注解的详细信息
前言:这篇博客主要是为了后续的获取SpringMVC中的全部请求URL做的准备。
public class AnnotationHelper { private static final AnnotationHelper helper = new AnnotationHelper(); protected AnnotationHelper() { } public static AnnotationHelper getInstance() { return helper; } /** * 得到类上面的注解信息 * @param scannerClass * @param allowInjectClass * @return */ public Annotation getClassAnnotation(Class<?> scannerClass , Class<? extends Annotation> allowInjectClass) { if(!scannerClass.isAnnotationPresent(allowInjectClass)) { return null; } return scannerClass.getAnnotation(allowInjectClass); } /** * 等到方法级别注解的信息 * @param scannerClass:需要被扫描的class文件 * @param allowInjectClass:注解的文件 * @return */ public List<Annotation> getMethodAnnotation(Class<?> scannerClass , Class<? extends Annotation> allowInjectClass) { List<Annotation> annotations = new ArrayList<Annotation>(); for(Method method : scannerClass.getDeclaredMethods()) { if(!method.isAnnotationPresent(allowInjectClass)) { continue; } annotations.add(method.getAnnotation(allowInjectClass)); } return annotations; } /** * 使用Java反射得到注解的信息 * @param annotation * @param methodName * @return * @throws NoSuchMethodException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public Object getAnnotationInfo(Annotation annotation , String methodName) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { if(annotation == null) { return null; } Method method = annotation.getClass().getDeclaredMethod(methodName, null); return method.invoke(annotation, null); } }
要判断是否存在指定的Java注解,只需要调用isAnnotationPresent方法,就能够实现是否存在制定的注解。那么,方法以及类上的注解判断,就能够轻松搞定。那么,接下来,就是要获取注解的详细信息。通过调用getAnnotation方法,就能够获取得到该注解,然后通过Java的反射,就能够获取得到该注解中指定方法的结果值。
获取Java类中注解的详细信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。