如何编写一个可以在java中接受List <integer>或List <double>的重载函数?</double> </integer>

时间:2013-08-23 12:35:50

标签: java overloading

我知道存在一些向后兼容性问题,编译器不允许这样做。

Method has the same erasure as another method in type

其他人如何实现这一目标?除了用不同的函数名定义它们之外还有其他解决方案吗?

4 个答案:

答案 0 :(得分:0)

这是因为在字节码级别,删除了泛型,基本上你有一个对象列表..导致两个相同的方法签名。

但如果符合您的要求,您可以使用Integer[]Double[],因为这些是不同的类型。

答案 1 :(得分:0)

你可以使它们像List一样通用,在实例化时只告诉你想做什么。声明为List或List。

答案 2 :(得分:0)

制作一个通用列表,如: -

List<> list= new ArrayList<>();

您可以在括号中编写任何参数,例如T,V,B或其他任何参数,然后在主要内容中将泛型参数定义为IntegerDouble。通常,使用T

阅读泛型以便更好地理解。

答案 3 :(得分:-3)

您可以将参数作为对象列表。在实现中,检查传递的对象的类类型,并有一个开关来处理整数和双重

的不同

请接受/投票,如果这可以解决您的查询