gpt4 book ai didi

java - 通过 List<> 重载 java 方法

转载 作者:行者123 更新时间:2023-11-30 07:04:53 25 4
gpt4 key购买 nike

我有代码,其中方法覆盖了 List<>参数

RetrunType1 func(List<Type1> arg);
ReturnType2 func(List<Type2> arg);

和 Type1!=Type2,但该代码在 jdk1.6.0_45 上编译并运行良好。我知道这个示例不能编译和工作。我怎么能理解呢?

最佳答案

这是由于 type erasure .通用类型参数不遵循字节码,因此如果您建议的重载是合法的,您最终会在字节码中遇到名称冲突:

ReturnType1 func(List arg);
ReturnType2 func(List arg);

解决方案是为函数使用不同的名称。

它在 Java 6 中工作的原因是 a bug这是在 Java 7 中修复的。

关于java - 通过 List<> 重载 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com