想想我们在java里面是怎么获取一个类对象的,通常是new 一个对象。或者spring ioc已经帮忙声明好了,直接注入。
我这里说说另外两种方式 一个为反射 一个类加载器加载。
代码如下
package reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Main {
public static void main(String... a) throws Exception {
//反射
Class testClass=Class.forName("reflect.TestClass");
//类加载器
Class testClass2 =TestClass.class.getClassLoader().loadClass("reflect.TestClass");
//生成类对象
TestClass testClass1= (TestClass) testClass2.newInstance();
//获取反射test方法
Method method= testClass.getMethod("test",String.class);
//调用test方法
method.invoke(testClass1,"hellow word");
//获取testval属性
Field field = TestClass.class.getDeclaredField("testval");
//强行跨越私属性进行操作
field.setAccessible(true);
//给私有属性赋值
field.se