我知道存在一些向后兼容性问题,编译器不允许这样做。
Method has the same erasure as another method in type
其他人如何实现这一目标?除了用不同的函数名定义它们之外还有其他解决方案吗?
答案 0 :(得分:0)
这是因为在字节码级别,删除了泛型,基本上你有一个对象列表..导致两个相同的方法签名。
但如果符合您的要求,您可以使用Integer[]
和Double[]
,因为这些是不同的类型。
答案 1 :(得分:0)
你可以使它们像List一样通用,在实例化时只告诉你想做什么。声明为List或List。
答案 2 :(得分:0)
制作一个通用列表,如: -
List<> list= new ArrayList<>();
您可以在括号中编写任何参数,例如T,V,B
或其他任何参数,然后在主要内容中将泛型参数定义为Integer
或Double
。通常,使用T
。
阅读泛型以便更好地理解。
答案 3 :(得分:-3)
您可以将参数作为对象列表。在实现中,检查传递的对象的类类型,并有一个开关来处理整数和双重
的不同请接受/投票,如果这可以解决您的查询