第二十五章、有哪些方法能在运行时动态生成一个Java类

1、通常的开发过程是,开发者编写java代码,调用javac编译成class文件,然后通过类加载机制载入JVM,就成为应用运行时可以使用的java类了。

2、直接用ProcessBuilder之类启动javac进程,并指定上面生成的文件作为输入,进行编译。最后,再利用类加载器,在运行时加载即可。

3、可以使用java Compiler API,这是JDK提供的标准API,里面提供了与javac对等的编译器功能。


实现一个简单的动态代理,都要做数目?如何使用字节码操纵技术走通这个过程?

    对于一个普通的java动态代理,其实现过程可以简化为:

1、提供一个基础的接口,作为被调用类型(com.mycorp.Helloimpl)和代理类之间的统一入口,如com.mycorp.Hello.

2、实现InvocationHandler,对代理对象方法的调用,会被分派到其invoke方法来真正实现动作;

3、通过Proxy类,调用其newProxyInstance方法,生成一个实现了相应基础接口的代理类实例。

动态代码生成的具体发生阶段就是在newProxyInstance生成代理类实例的时候。

你可能感兴趣的:(第二十五章、有哪些方法能在运行时动态生成一个Java类)