一尘不染

覆盖实例化Java对象中的方法

java

我想覆盖我无法控制的工厂提供给我的对象中的方法。

我的具体问题是,我想覆盖 的getInputStreamgetOutputStream方法 一的 Socket对象 进行
线记录

通用问题如下:

public class Foo {
    public Bar doBar() {
        // Some activity
    }
}

我想实例化FoodoBar用我自己的实例替换的位置,如下所示:

Bar doBar() {
    // My own activity
    return original.doBar();
}

对于套接字,我将返回一个 InputStreamOutputStream ,它们通过记录来包装以拦截数据。


阅读 264

收藏
2020-12-03

共1个答案

一尘不染

由于Java使用基于类的OO,所以这是不可能的。您可以做的是使用装饰器模式,即为返回包装流的对象编写包装器。

2020-12-03