1

難読化されたjarfileにクラスがありますSingletonASingletonBそれらは同じインターフェースを実装しておらず、同じスーパークラスの子でもありませんが、元のプログラマーが見逃していた類似の特性を持っています。

次のようなメソッドに引数として渡すことができるようにしたい:

public void method(SingletonObject singleton) {
    //do stuff with singleton
}

ただし、私が考えることができる唯一のことはこれです:

    public void method(Object singleton) {     
        if(singleton instanceof SingletonA) {
           SingletonA singletonA = (SingletonA) singleton;
            // do stuff with singletonA
        }
        else if(singleton instanceof SingletonB) {
            SingletonB singletonB = (SingletonB) singleton;
           //do exact same stuff with singletonB
        }
        else {
            return;
        }
    }

下の例がひどいので、上のように見せるにはどうすればよいでしょうか。

4

2 に答える 2