有很多類似錯誤的問題,但它們都不能解決我的問題。Java泛型:方法不適用於參數(T)
我只是想能夠重複使用相同的foo
通用與各種bar
方法。什麼是正確的方法來做到這一點?
public class Test {
static public <T> String foo(T object) {
return bar(object);
}
static public String bar(String object){
return "string:" + object;
}
static public String bar(Integer object){
return "integer:" + object;
}
public static void main(String[] args) throws Exception {
System.out.println(foo("blabla"));
}
}
我收到The method bar(String) in the type Test is not applicable for the arguments (T)
編譯錯誤。
這沒有任何意義。爲什麼不聲明兩個重載的'foo'函數呢? –
當然,因爲你沒有傳遞'String',所以你會傳遞一個'不管怎麼樣'。而'bar()'並沒有聲明它可以採用'無論什麼碰巧'。我想也許你想要參數化類,而不是單個方法?例如,[像這樣](http://pastebin.com/WUA5wGA6)。 –
aroth
@SergeyTachenov那麼你打算寫兩個相同的'foo兩次嗎?' – VitoshKa