- package com.felay.test;
- import java.io.IOException;
- import java.io.InputStream;
- 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();
- }
- }
-
- };
- Object obj = loader.loadClass("com.felay.test.ClassLoaderTest").newInstance();
- System.out.println(obj.getClass());
- System.out.println(obj instanceof com.felay.test.ClassLoaderTest);
- }
- }
复制代码 |