虛擬機通過得到類的字節碼文件,從而創建對象。在java代碼中可用Class類中的方法進行實現,
1 package javase; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.InvocationTargetException; 5 6 public class ReflextDemo { 7 8 public static void method2() throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { 9 10 String name = "test.Person";//把類名的路徑存到字符串 11 Class clazz = Class.forName(name);//通過路徑拿到字節碼文件,創建對象 12 Constructor<Person> con = clazz.getConstructor(String.class,int.class);//獲取構造器 13 Object obj = con.newInstance("小強",10);//創建實例 14 15 } 16 17 public static void method1() throws ClassNotFoundException, InstantiationException, IllegalAccessException { 18 19 String name = "test.Person";//把類名的路徑存到字符串 20 Class clazz = Class.forName(name);//通過路徑拿到字節碼文件,創建對象 21 Object obj = clazz.newInstance();//創建實例 22 23 } 24 25 public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { 26 27 method2(); 28 29 } 30 31 }