在Java中,泛型方法的參數類型是在調用該方法時確定的。泛型方法允許你在方法級別上指定類型參數,這意味著你可以為每個方法調用指定不同的類型參數。這提供了更大的靈活性,因為你可以根據需要為每個方法調用選擇合適的類型。
泛型方法的語法如下:
public <T> void genericMethod(T input) {
// 方法實現
}
在這個例子中,<T>
是一個類型參數,它在方法名之前聲明。當你調用這個方法時,你可以為 T
指定一個具體的類型,如 Integer
、String
等。編譯器會根據你指定的類型來推斷泛型方法的參數類型。
例如,如果你有一個泛型方法,如下所示:
public <T> T process(T input) {
// 處理輸入并返回結果
return input;
}
你可以這樣調用它:
String result1 = process("Hello, world!"); // 這里 T 被推斷為 String 類型
Integer result2 = process(42); // 這里 T 被推斷為 Integer 類型
在這個例子中,編譯器根據傳遞給 process
方法的參數類型自動推斷出泛型方法的參數類型。你也可以顯式地指定類型參數,如下所示:
String result1 = process<String>("Hello, world!");
Integer result2 = process<Integer>(42);
請注意,顯式指定類型參數的語法可能因Java版本而異。在Java 8及更高版本中,你可以使用上面的語法。在某些情況下,編譯器可能無法推斷出正確的類型參數,這時你需要顯式地指定它。