Java反射_基础

Java反射是指Java程序能够在运行时动态的获取类的相关信息以及执行类的方法和属性的能力。其主要是利用Java  API中的Class类和相关的API实现的。

首先,可以通过Class.forName()方法获取一个类的Class对象,或者通过对象的getClass()方法也可以获取该对象的Class对象。如下所示:

  • Class clazz1 = Class.forName("com.example.TestClass");
  • Class clazz2 = new TestClass().getClass();


接下来,可以使用Class类提供的一些方法来获取有关这个类的信息,如获取类的名称、父类、接口、方法等等。例如,可以使用以下方法获取类的所有方法:

  • Method[] methods = clazz1.getDeclaredMethods();
  • for (Method method : methods) {
  • System.out.println(method.getName());
  • }


还可以利用Class类的newInstance()方法通过反射来创建一个对象,如下所示:
 

Object obj = clazz1.newInstance();


或者可以使用Constructor类提供的newInstance()方法来创建一个对象:

  • Constructor constructor = clazz1.getDeclaredConstructor();
  • constructor.setAccessible(true);
  • Object obj = constructor.newInstance();


除此之外,还可以利用反射来设置和获取对象的属性以及执行对象的方法。例如,可以使用以下方法来设置对象的属性:

  • Field field = clazz1.getDeclaredField("fieldName");
  • field.setAccessible(true);
  • field.set(obj, "Hello World!");


可以使用以下方法来获取对象的属性:

Field field = clazz1.getDeclaredField("fieldName");

  • field.setAccessible(true);
  • Object value = field.get(obj);


可以使用以下方法来执行对象的方法:

  • Method method = clazz1.getDeclaredMethod("methodName", String.class);
  • method.setAccessible(true);
  • method.invoke(obj, "parameterValue");
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值