首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

自定义类加载器 4

2012-12-22 
自定义类加载器四package com.yuan.common.asmimport java.util.ArrayListimport java.util.LinkedHashM

自定义类加载器 四

package com.yuan.common.asm;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;


public class ByteClassLoader extends AbstractClassLoader {

??? private Map<String, byte[]> classDataMap = new LinkedHashMap<String, byte[]>();

??? public ByteClassLoader(ClassLoader parent){
??? ??? super(parent);
??? }
??? public ByteClassLoader(ClassLoader parent, Map<String, byte[]> classDataMap){
??? ??? super(parent);
??? ??? this.classDataMap = classDataMap;
??? }
???
??? public List<Class<?>> loadAllClasses()throws ClassNotFoundException{
??? ??? List<Class<?>> classList = new ArrayList<Class<?>>();
??? ???
??? ??? Set<String> classNameSet = classDataMap.keySet();
??? ??? for(String className : classNameSet){
??? ??? ??? classList.add(super.loadClass(className));
??? ??? }
??? ??? return classList;
??? }
???
??? public void putClassData(String className, byte[] bytecode){
??? ??? classDataMap.put(className, bytecode);
??? }
???
??? protected byte[] loadClassData(String name) throws ClassNotFoundException{
??? ??? return classDataMap.get(name);
??? }
???
}

热点排行