不同的接口我有兩個類(A和B)使用相同的方法(富):的Java:在泛型
public class A {
public String foo() {
return "A said foo";
}
}
public class B {
public String foo() {
return "B said foo";
}
}
我想使通用類,可以調用此方法。但我有兩個想法如何做到這一點的運行時間和有關於編譯時沒有想法:
檢查類型和轉換爲A或B.
Get方法。
我的普通例子調用getMethod:
public class Template<T> {
private T mT;
public Template(T t) {
mT = t;
}
public String bar() {
String result = "no result";
try {
Method m = mT.getClass().getMethod("foo", null);
result = (String)m.invoke(mT);
} catch (Exception e) {
result = e.toString();
e.printStackTrace();
}
return result;
}
}
是否有另一種方式該怎麼辦呢? 我期待這樣的事情:
public class Template<T extends A | B> {
...
}
請注意,我不是等級「A」和「B」的創造者。
確實。沒有接口(或超類),只有*方法才能通過反射,泛型或否。 – 2010-12-07 09:14:09