我正在阅读Horstmann着名的书籍Core Java中的Proxies部分。我对这个概念不熟悉。正如书中所写,只有在编译时您还不知道需要实现哪些接口时,代理才是必需的。但是,在构造代理对象时,需要提供一个类对象数组,这些对象只是要实现的接口。这听起来像是一种自相矛盾吗? 请照亮我。谢谢!
答案 0 :(得分:0)
不,没有自相矛盾。
您需要提供的此类对象数组可以是动态,即在运行时创建。通常,可以从配置文件中读取,您将从Class
加载String
对象。这通常是在创建代理实例时,有多少框架(例如Spring用于依赖注入)。
来自Proxy
javadoc的改编示例:
String className = readClassNameFromFile();
Class<?> myClass = Class.forName(className);
Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
new Class[] { myClass },
handler);