对于一个 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 直接操作内存方法?
一个可行方法是你可以通过持有一个 Runnable 对象,在 call 方法里执行 run 方法。通过动态替换 Runnable 对象实现。以此类推 Consumer<T>,BiConsumer<T,U>对象适用于 call(T t)和 call(T t,U u)……但是更多参数呢?
实例化以后 B 对应的 Class 已经被加载到内存里了,有没有用 Unsafe 直接操作内存方法?