「java获取类的注解」java获取类的注解信息

博主:adminadmin 2022-12-01 17:36:11 110

本篇文章给大家谈谈java获取类的注解,以及java获取类的注解信息对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java如何获取类上的注解

如何获取类的注解和注解的内容

java 反射

Class someClass = Some.getClass();

注解 somtAnnotation = someClass.getAnnotation(注解.class)

属性类型 属性值 = someAnnotation.属性();

要一一遍历么?

这个要根据需求来顶,谁用谁遍历,

java 获取所有带注解的类

既然是基于spring,可以这样:

ResourcePatternResolver rpr = new PathMatchingResourcePatternResolver();

Resource[] res = rpr.getResources("classpath*: **/*.class"); // classpath*:带*号会找jar中的class

然后根据resource取clas路径就行

String className = res[0].getURL().getPath();

className = className.split("(classes/)|(!/)")[1];

className = className.replace("/", ".").replace(".class", "");

Object obj = Class.forName(className);

话说我最近也在写一个这样的MVC。。要不咱两合伙? 我写的也是基于注解,不过要支持REST风格

java获取当前类上的注解内容

@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到

@Target({ElementType.FIELD,ElementType.METHOD})//定义注解的作用目标**作用范围字段、枚举的常量/方法

@Documented//说明该注解将被包含在javadoc中

public @interface FieldMeta {

/**

* 是否为序列号

* @return

*/

boolean id() default false;

/**

* 字段名称

* @return

*/

String name() default "";

/**

* 是否可编辑

* @return

*/

boolean editable() default true;

/**

Java 注解的读取注解信息的方法

属于重点,在系统中用到注解权限时非常有用,可以精确控制权限的粒度

注意:要想使用反射去读取注解,必须将Retention的值选为Runtime Java代码import java.lang.annotation.Annotation;import java.lang.reflect.Method;//读取注解信息public class ReadAnnotationInfoTest {    public static void main(String[] args) throws Exception {        // 测试AnnotationTest类,得到此类的类对象        Class c = Class.forName(com.iwtxokhtd.annotation.AnnotationTest);        // 获取该类所有声明的方法        Method[] methods = c.getDeclaredMethods();        // 声明注解集合        Annotation[] annotations;        // 遍历所有的方法得到各方法上面的注解信息        for (Method method : methods) {            // 获取每个方法上面所声明的所有注解信息            annotations = method.getDeclaredAnnotations();            // 再遍历所有的注解,打印其基本信息            System.out.println(method.getName());            for (Annotation an : annotations) {                System.out.println(方法名为: + method.getName() + 其上面的注解为: + an.annotationType().getSimpleName());                Method[] meths = an.annotationType().getDeclaredMethods();                // 遍历每个注解的所有变量                for (Method meth : meths) {                    System.out.println(注解的变量名为: + meth.getName());                }            }        }    }}

java反射机制 怎样获取到类上面的注解

// 定义注解并指定java注解保留策略为运行时RUNTIME,运行时注入到JAVA字节码文件里

// 这样才可以在运行时反射并获取它。

@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)

@interface MyAnnotation{

String key() default "";

int value()  default 0; 

}

// 使用注解

@MyAnnotation(key="key1",value=200)

class MyClass{}

// 反射注解

public static void main(String[] args){

   MyClass myClass=new MyClass();

   MyAnnotation annotation=myClass.getClass().getAnnotation(MyAnnotation.class);

   System.out.println("key="+annotation.key()+"\tvalue="+annotation.value());

}

java获取类的注解的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取类的注解信息、java获取类的注解的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。