I want to write method that would accept the parameter of types a.A or b.B. Currently it's implemented:
import a.A;
import b.B;
public void doSth(A arg) {
SpecificClass.specificMethod(arg);
}
public void doSth(B arg)
{
SpecificClass.specificMethod(arg);
}
I want to have one generic method "doSth" that use wildcards and accepts only a.A or b.B. Important information a.A and b.B aren't subtypes of each other. The only common type is java.lang.Object.
Any help?
Kate Smith
14-Oct-2013You may wrap both A and B extending a common interface, just like:
interface CommonWrapper {
public void doSth();
}
public class AWrapper implements CommonWrapper {
private A wrapped;
public AWrapper(A a) {
this.wrapped = a;
}
public void doSth() {
// implement the actual logic using a
}
}
public class BWrapper implements CommonWrapper {
private B wrapped;
public BWrapper(B b) {
this.wrapped = b;
}
public void doSth() {
// implement the actual logic using b
}
}
Then modify your method doSth to accept a CommonWrapper object as parameter:
public void doSth(CommonWrapper c) {c.doSth();
}