バイトコードからクラスを動的にロード
public class BytecodeClassLoader extends ClassLoader { public Object newInstance(String className, byte[] bytecode) { Object obj = null; try { defineClass(className, bytecode, 0, bytecode.length); obj = loadClass(className, true).newInstance(); } catch (Exception e) { ... } return obj; } }
ClassLoader クラスの protected メソッドである defineClass, loadClass メソッドを利用するため,ClassLoader クラスを継承したクラスを自作する.