如何解决什么是com.sun.proxy$ Proxy
-
代理是在运行时创建和加载的类。这些类没有源代码。我知道您想知道如果没有针对他们的代码,如何让他们做一些事情。答案是,在创建它们时,您指定一个实现的对象,该对象
InvocationHandler
定义了在调用代理方法时要调用的方法。 -
您可以通过调用创建它们
Proxy.newProxyInstance(classLoader, interfaces, invocationHandler)
参数为:
1. `classLoader`。一旦生成了类,就使用该类加载器加载它。
2. `interfaces`。一类必须全部是接口的类对象。生成的代理实现所有这些接口。
3. `invocationHandler`。这就是您的代理知道调用方法时该怎么做的方式。这是一个实现的对象`InvocationHandler`。当从任何受支持的接口,或一个方法`hashCode`,`equals`或者`toString`被调用,该方法`invoke`调用的处理程序中,经过`Method`用于向被调用的方法和传递的参数对象。
有关更多信息,请参见Proxy
该类的文档。
- 1.3版之后的JVM的每个实现都必须支持这些实现。它们以特定于实现的方式加载到JVM的内部数据结构中,但可以保证正常工作。
解决方法
我已经看到,当错误在不同的框架(例如,实现EJB规范的框架或某些JPA提供程序的框架)中发生深层错误时,stacktrace将包含诸如这样的类com.sun.proxy.$Proxy
。我知道什么是代理,但是我正在寻找更技术性和更特定于Java的答案。
- 这些是什么?
- 它们是如何创建的?
- 与JVM有什么关系?它们是特定于JVM实现的吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。