2017-10-11 66 views
0

Java的开发人员有可能将Java的泛型类型系统的开发人员与C#的类似系统进行比较吗?Java通用类型系统的更新

我知道JVM已经为这个在类文件中没有语言支持,但有可能在事后引入这种构建到JVM语言(类字节码)

优点在Java更好的类型系统是:

  • 较少或没有在所有

  • 运行时反射安全警告仿制药

  • 更高Kinded类型(HKT)将有可能

要查看HKT最后一点: 的Java支持类与

Class<T> 

是不是也legitime说,一类具有类型类型

Class<Class<T>> 

例如用于收藏喜欢

ArrayList<T>, HashSet<T>, 

但也适用于其他一些不是集合的泛型类。 不幸的是,

Class<Class<T>> 

由于类型擦除在java中没有意义。

+0

除非Oracle中有一些来自Oracle的Java团队在StackOverflow-land中出现,否则您会问错误的人。 –

回答

0

Java的开发人员有可能将Java的泛型类型系统的开发人员与C#的开发人员进行比较吗?

技术上可行吗?如果您准备牺牲向后兼容性并且使大多数在过去20多年中编写的Java代码过时,那么......是的。

它是否实用?如果甲骨文这样做了,他们会通过疏远他们的客户基础来摧毁他们的Java业务。即成千上万的组织无法猜测出在编写Java的软件中投入了多少美元的沉重投资。

而且它可能会摧毁他们的旗舰数据库产品线以及其他许多企业产品线。

然后,法律诉讼将开始。

这将是企业自杀。


用一种全新的编程语言重新开始会更有意义,而且我看不到Oracle在做这件事。

+0

1。)为什么它打破了向后兼容性,微软如何裁定这是C# – iconfly

+0

2.)为什么旧的源代码不能用新的jvm重新编译支持更好的通用系统 – iconfly

+0

1a)这太宽了。 1b)Microsoft C#从来没有遇到过这个问题,因为他们从一开始就使用了泛化泛型。 2)因为重新编译的代码会有不同的表现。 AFAIK,从擦除泛型到可以确保旧代码仍然有效的泛化泛型没有可自动映射。如果你知道一个,随时解释...引用/引用。 –