对于一个 Class/Interface A 而言,不妨假设 A 有一个方法叫 call(),他的一个实例 B 在实例化以后这个 call()方法能不能被动态替换?
一个可行方法是你可以通过持有一个 Runnable 对象,在 call 方法里执行 run 方法。通过动态替换 Runnable 对象实现。以此类推 Consumer<T>,BiConsumer<T,U>对象适用于 call(T t)和 call(T t,U u)……但是更多参数呢?
实例化以后 B 对应的 Class 已经被加载到内存里了,有没有用 Unsafe 直接操作内存方法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/786540
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.