2011-11-10 166 views
0

我想編寫一個函數,允許多種輸入類型:功能輸入允許不同類型

public void func(TYPE variable) { 
    if (variable instanceof String) 
    //do string stuff 
    else if (variable instanceof double) 
    //do double stuff 
} 

什麼我必須聲明的類型?我必須使用泛型嗎?

謝謝

回答

2

java.lang.Object並使用instanceof來檢查類型並執行操作。

public void func(Object variable) { 
    if (variable instanceof String) 
    //do string stuff 
    else if (variable instanceof double) 
    //do double stuff 
} 

更多關於泛型和使用它,請參閱

http://download.oracle.com/javase/tutorial/java/generics/gentypes.html

+0

我想,其實,當我用'variable.compareTo(字符串)'是說,這是一個'String'功能,而不是一個'Object'功能。 – switz

+2

在調用compareTo((String)o).compareTo(otherString)之前進行轉換。 – kgautron

1

您可以爲每個需要的類型參數的創建相同的功能。調用該函數將通過參數的類型推斷:

public void func(String string) {...} 
public void func(double double) {...} 
+0

重點是我想創建一個功能。謝謝。 – switz