反射的時候通過暴力破解是可以訪問的 用反射的方法調用上面的類 對構造器進行暴力破解後,私有的構造也可以訪問,這個構造器的獲得要通過getDeclaredConstructor()方法 ...
反射的時候通過暴力破解是可以訪問的
package com.swift.fanshe; import java.util.List; public class Fanshe { String name="swift"; private Fanshe(List list) { System.out.println("list"); } }
用反射的方法調用上面的類
package com.swift.fanshe; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; import org.junit.Test; public class TestFanshe { @Test public void test() throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Class clazz=Class.forName("com.swift.fanshe.Fanshe"); Constructor c=clazz.getDeclaredConstructor(List.class); c.setAccessible(true);//暴力打開私有構造 Fanshe fanshe=(Fanshe) c.newInstance(new ArrayList()); System.out.println(fanshe.name); } }
對構造器進行暴力破解後,私有的構造也可以訪問,這個構造器的獲得要通過getDeclaredConstructor()方法