loader personalizado

carregador de classe personalizada

1, o carregador de classe é capaz de carregar no JVM class, carregado na classe de objecto do objecto, é responsável para a leitura de código de bites Java, e convertida em uma instância da classe java.lang.Class tipos de carregadora classe, ele tem de ser carregado.
2, o carregador de classe carregamento:
  1) carregamento implicitamente stu Student = novo Student (), utilizando o carregador de classe JDK nativo;
  2) por Class.forName ( "com.javaee.Student"); ( JDBC conector bases de dados semelhantes).
  arquivo 3) pode ser carregado a partir da classe sufixo definido, garantia para obter o servidor que está sendo atacado não está disponível, desempenhar um papel na proteção.
3, usado para servidores, processamento remoto.
exemplo:

public class Demo01 {
    public static void main(String[] args) throws Exception{
        MessageClassLoader messageClassLoader = new MessageClassLoader();
        String kindName = "com.tx.test.classloader.Message";
        Class<?> clazz = messageClassLoader.loadData(kindName);
        Object object = clazz.getDeclaredConstructor().newInstance();
        Method method = object.getClass().getDeclaredMethod("print",String.class);
        method.invoke(object,"www.baidu.com");
    }
}
//自定义类加载器
class MessageClassLoader extends ClassLoader {

    public Class<?> loadData(String kindName) {
        String addressName = "E:" + File.separator + "IDEA_JavaSE练习" + File.separator + "类加载器"
                + File.separator + "src" + File.separator + kindName.replace(".", File.separator) + ".class";
        try {
            InputStream in = new FileInputStream(new File(addressName));
            int len = in.available();
            byte[] data = new byte[len];
            int read = in.read(data, 0, len);
            return this.defineClass(kindName, data, 0, len);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}



resultados:

send Show:www.baidu.com
Publicado 61 artigos originais · ganhou elogios 0 · Vistas 2171

Acho que você gosta

Origin blog.csdn.net/sabstarb/article/details/104403301
Recomendado
Clasificación