j***a反射语言,j***a 反射使用

kodinid 9 0

大家好,今天小编关注到一个比较意思的话题,就是关于java反射语言问题,于是小编就整理了2个相关Java反射语言的解答,让我们一起看看吧。

  1. java反射机制怎样获取到类上面的注解?
  2. java如何用反射获取类实例?

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

// 定义注解并指定j***a注解保留策略运行时RUNTIME,运行时注入到J***A字节文件里// 这样才可以在运行时反射并获取它。@j***a.lang.annotation.Retention(j***a.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 反射使用-第1张图片-安济编程网
图片来源网络,侵删)

j***a如何用反射获取类实例

了解更多J***a相关,百度搜索圈T社区,视频教程。纯干货

public class Demo {private String key1 = "1";private String key2 = "2";public String getKey1() {return key1;}public void setKey1(String key1) {this.key1 = key1;}public String getKey2() {return key2;}public void setKey2(String key2) {this.key2 = key2;}public static void main(String[] args) throws Exception {//参数 “Demo” 是类的全名,如果在包结构下,要有完整包路径 比如: com.test.DemoClass<?> clazz = Class.forName("Demo");//“Demo”类必须有默认构造方法,否则会抛出异常Demo demo = (Demo) clazz.newInstance();System.out.println(demo.getKey1());System.out.println(demo.getKey2());}}

调用运行时类本身的.class属性

java反射语言,java 反射使用-第2张图片-安济编程网
(图片来源网络,侵删)

Class clazz=Person.class;

//创建class对应的运行时类Person对象

System.out.println(clazz);

java反射语言,java 反射使用-第3张图片-安济编程网
(图片来源网络,侵删)

Class clazz1=String.class;

System.out.println(clazz1);

运行时类的对象获取

Person p=new Person();

Class clazz2=p.getClass();

System.out.println(clazz2);

到此,以上就是小编对于j***a反射语言的问题就介绍到这了,希望介绍关于j***a反射语言的2点解答对大家有用。

标签: 反射 行时 j***a