在我们的项目中,我想声明两个具有相同函数名,相同输入参数的函数。参数类型是List,元素的类型与ObjectId和String不同,这将导致编译错误。让我们看看下面的例子:
public List<T> get(List<? extends ObjectId> ids)
{
...
}
public List<T> get(List<? extends String> ids)
{
...
}
感谢。
答案 0 :(得分:1)
解决方法
只需使用不同的名称扩展您的不同列表
public class MethodTest {
public static void main(String[] args) {
}
public void print(Integers list) {
}
public void print(Strings list) {
}
}
class Strings extends ArrayList<String>
{}
class Integers extends ArrayList<Integer>
{}
答案 1 :(得分:0)
如果每个方法以相同的方式处理List,那么我认为你可以使用一个方法public List<T> get(List<Object> ids)
,然后检查列表中包含的内容类型方法。
即使他们没有以同样的方式处理List,你仍然可以做类似的事情:
if (ids.get(0) instanceof Integer){
//do something
} else if (ids.get(0) instanceof String){
//do something else
} else {
//do yet another thing
}