java - 为什么有些人声称 Java 的泛型实现很糟糕?

标签 java generics

我偶尔听说过泛型,Java 做得不对。 (最近的引用,here)

请原谅我的经验不足,但是什么能让他们变得更好?

最佳答案

不好:

  • 类型信息在编译时丢失,因此在执行时您无法判断它“意味着”是什么类型
  • 不能用于值类型(这是一个大问题 - 例如,在 .NET 中,List<byte> 确实由 byte[] 支持,并且不需要装箱)
  • 调用泛型方法的语法很糟糕 (IMO)
  • 约束的语法可能会令人困惑
  • 通配符通常令人困惑
  • 由于上述原因的各种限制 - Actor 等

好:

  • 通配符允许在调用方指定协变/逆变,这在许多情况下都非常简洁
  • 总比没有好!

关于java - 为什么有些人声称 Java 的泛型实现很糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/520527/

相关文章:

java - Selenium WebDriver : unable to locate element inside iframe using TinyMCE editor

java - 安卓 Java : is this a good way instead enums?

java - Guice 最佳实践和反模式

java - 在 SWT 中获取 Active Shell,即使 Shell 不在焦点上

java - 从 Java 中的通用静态方法获取类名

c# - 比较 IEnumerable<T> 的类型

java - 如何在应用程序上下文中注册现有的 bean,我从中得到的优势是什么?

Java - 在静态函数中构造泛型类的多个对象

Java 1.6 : Pass generic interface to generic class

java - 可以采用数组和数组列表的通用方法