而不是使用重载我想用单一的方法与一般数据类型一样,我们可以使用方法参数的泛型在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)'。但我同意以前的评论者:在你描述的情况下,这是不合理的。 –