難読化されたjarfileにクラスがありますSingletonA
。SingletonB
それらは同じインターフェースを実装しておらず、同じスーパークラスの子でもありませんが、元のプログラマーが見逃していた類似の特性を持っています。
次のようなメソッドに引数として渡すことができるようにしたい:
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;
}
}
下の例がひどいので、上のように見せるにはどうすればよいでしょうか。