quot;; try { //Class<?> loadClass = cl.loadClass(name); AbcBean abc = new AbcBean(); AbcBean abc2 = new AbcBean(); abc.greeting(); //System.out.println(abc.greeting()); //Class<?> loadClass = cl.findClass(name); Class<?> loadClass = cl.findClass(name); System.out.println(loadClass.getClassLoader()); Class<?> loadClass2 = cl.findClass(name2); Constructor ccc =loadClass2.getDeclaredConstructor(new Class[]{String.class}); System.out.println(ccc.newInstance(new Object[]{pp}).getClass().getClassLoader()); Object o = ccc.newInstance(new Object[]{pp}); System.out.println(o.getClass().getClassLoader()); Method m = o.getClass().getMethod("findClass", String.class); Object oo = m.invoke(o, name); System.out.println(oo.getClass().getClassLoader());//这里不明白为什么为null System.out.println(oo.getClass().getClassLoader().getParent()); // ll.getClass().getClassLoader() // ClassLoaderLK ll = (ClassLoaderLK)loadClass2.newInstance(); //Class<?> loadClass2 = cl.findClass(name); //loadClass = ll.findClass(name); //System.out.println("===" + (loadClass == loadClass2)); Object object = loadClass.newInstance(); System.out.println(object.getClass().getClassLoader()); System.out.println(object.getClass().getClassLoader().getParent()); System.out.println(object.getClass().getClassLoader().getParent().getParent()); System.out.println("abc==abc2" + (abc.getClass() == abc2.getClass())); System.out.println("abc==object" + (abc.getClass() == object.getClass())); System.out.println("abcClassLoader=" + abc.getClass().getClassLoader()); System.out.println("objectClassLoader=" + object.getClass().getClassLoader()); // URLClassLoader System.out.println("123=" + object.getClass()); // AbcBean ss = (AbcBean) object; // 无法转换的 (1) // ss.greeting(); (1) |