代理是在运行时创建和加载的类。这些类没有源代码。我知道您想知道如果没有针对他们的代码,如何让他们做一些事情。答案是,在创建它们时,您指定一个实现的对象,该对象
InvocationHandler
定义了在调用代理方法时要调用的方法。您可以通过调用创建它们
Proxy.newProxyInstance(classLoader, interfaces, invocationHandler)
参数为:
1. `classLoader`。一旦生成了类,就使用该类加载器加载它。2. `interfaces`。一类必须全部是接口的类对象。生成的代理实现所有这些接口。3. `invocationHandler`。这就是您的代理知道调用方法时该怎么做的方式。这是一个实现的对象`InvocationHandler`。当从任何受支持的接口,或一个方法`hashCode`,`equals`或者`toString`被调用,该方法`invoke`调用的处理程序中,经过`Method`用于向被调用的方法和传递的参数对象。
有关更多信息,请参见
Proxy该类的文档。
- 1.3版之后的JVM的每个实现都必须支持这些实现。它们以特定于实现的方式加载到JVM的内部数据结构中,但可以保证正常工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)