我知道存在一些向后兼容性问题,编译器不允许这样做。
其他人如何做到这一点?除了用不同的函数名称定义它们之外,还有其他解决方案吗?
这是因为在字节码级别,通用被删除了,你基本上有一个对象列表..导致两个相同的方法签名。
但是如果它符合您的要求,您可以使用Integer[]
andDouble[]
代替,因为它们是不同的类型。
制作一个通用列表,例如:-
List<> list= new ArrayList<>();
您可以在括号中写入任何参数 likeT,V,B
或任何其他参数,然后稍后在 main 中将泛型参数定义为 asInteger
或 as Double
。一般T
情况下使用。
阅读泛型以获得更好的理解。
您可以使它们像 List 一样通用,并且在实例化时只告诉您想要做什么。要么声明为列表,要么声明为列表。
可能您可以将参数作为对象列表。在实现中,检查传递的对象的类类型,并有一个开关来处理整数和双精度的不同
如果这解决了您的问题,请接受/投票