bytearrayclassloader.java

来自「这是linux下ssl vpn的实现程序」· Java 代码 · 共 36 行

JAVA
36
字号
package com.sslexplorer.vpn.util;

import java.util.Hashtable;

public class ByteArrayClassLoader
    extends ClassLoader {

  static ByteArrayClassLoader instance;

  Hashtable classes = new Hashtable();
  ClassLoader parent;

  public ByteArrayClassLoader(ClassLoader parent) {
    this.parent = parent;
  }

  public Class createFromByteArray(String name, byte[] buf, int off, int len) {

    if(!classes.containsKey(name)) {
      classes.put(name, defineClass(name, buf, off, len));
    }
    return (Class) classes.get(name);

  }

  public Class loadClass(String name, boolean resolve) throws ClassNotFoundException {

    if(classes.containsKey(name)) {
      return (Class) classes.get(name);
    } else
      return parent.loadClass(name);
  }

  public static ByteArrayClassLoader getInstance() { return instance==null? instance = new ByteArrayClassLoader(ByteArrayClassLoader.class.getClassLoader()) : instance; }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?