2011-11-10 123 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