而不是使用重載我想用單一的方法與一般數據類型一樣,我們可以使用方法參數的泛型在Java
public void setValues(T key, T value){
if(key instanceof Integer){
//code
}elseif(key instanceof String){
//code
}else{
//code
}
}
有什麼辦法來實現這一目標。
而不是使用重載我想用單一的方法與一般數據類型一樣,我們可以使用方法參數的泛型在Java
public void setValues(T key, T value){
if(key instanceof Integer){
//code
}elseif(key instanceof String){
//code
}else{
//code
}
}
有什麼辦法來實現這一目標。
您可以定義類型T在你的方法
所以,你想通用的任何方法,你有這樣的
public void <T> someMethod (T arg)
謝謝你@ÉricRoberge這正是我想要的 –
@VikasYadav接受答案,如果它解決了你的問題 – Mistalis
的簽名我寫了一個小的應用程序。它編譯,運行併產生預期的輸出,但我完全摸不着頭腦它是如何工作的:
public class Ff {
public static <T> void setValue(T key, T value)
{
key=value;
System.out.println(key);
}
public static void main(String[] args) {
setValue(1L,"hello");
}
}
輸出:
你好
類型T是對象在這裏,這就是它的工作原理 –
更具體而不是強迫兩個T's是相同的類型你可能會期望,'T'被選擇爲足夠寬以使兩個參數都被接受。 – Kayaman
可以,但不要你看怎麼樣難道你的方法變成了? – Kayaman
這裏你不需要泛型,只需使用'Object'作爲參數。 –
您可以但需要聲明該方法爲通用:'public void setValues(T key,T value)'。但我同意以前的評論者:在你描述的情況下,這是不合理的。 –