public class ClassLoaderTest {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
ClassLoader loader = new ClassLoader() {
@Override
public Class<?> loadClass(String name) throws ClassNotFoundException {
try {
String fileName = name.substring(name.lastIndexOf(".") + 1) + ".class";
InputStream is = getClass().getResourceAsStream(fileName);
if (is == null) {
return super.loadClass(name);
}
byte[] b=new byte[is.available()];
is.read(b);
return defineClass(name, b, 0, b.length);
} catch (IOException e) {
throw new ClassNotFoundException();
}
}
};
String className="com.ClassLoaderTest.ClassLoaderTest";
Object obj1=ClassLoaderTest.class.getClassLoader().loadClass(className).newInstance();
//System.out.println(obj1.getClass().getClassLoader()+"~~~~~~~~~~");
System.out.println(obj1 instanceof com.ClassLoaderTest.ClassLoaderTest);
Object obj2=loader.loadClass(className).newInstance();
//System.out.println(obj2.getClass().getClassLoader());
System.out.println(obj2 instanceof com.ClassLoaderTest.ClassLoaderTest);
obj2.toString();
}
}
ClassLoader
最新推荐文章于 2025-07-04 09:05:44 发布