Java比C#更优雅的例子?

时间:2009-02-08 13:32:46

标签: c# java java-ee

自从我上次使用Java以来​​已经有几年了。 你能告诉我在Java中可以更优雅地解决哪些问题吗?

我知道Java的以下好处:

  • Java'到处运行',
  • Java支持units and measures
  • (据说)Java中的延迟更好
  • J2EE(我不认为.Net中有相应的内容)
  • 对泛型的不同方法(使用奇怪的循环定义,例如“Enum>”,请参阅Ken Arnold

泛型如何 - 是否有优雅的Java示例无法用C#表示?或其他API或库?

谢谢,

JIRÍ

P.S。一些通用链接:

2 个答案:

答案 0 :(得分:7)

Java泛型非常与C#泛型不同。是的,有些地方意味着它可以更优雅 - 通常在通配符和方差方面。另一方面,通配符通常知之甚少(而且我非常肯定将自己包含在该阵营中)并且整个类型擦除业务意味着通常我更喜欢.NET泛型。

Java“赢得”IMO的一个相当不同的地方是它的枚举支持。 C#枚举基本上是命名数字 - Java更加面向对象。使用嵌套类在C#中可以实现 类似的效果,但是欢迎更多的框架支持(相当于EnumSet)和交换机支持。

我也喜欢在Java中限制对包(命名空间)的可见性的能力 - 尽管这是我更喜欢C#的Java访问规则的唯一方面。

多年来广泛使用Java和C#,我自己的感觉是在语言层面上C#远远领先于Java。实际上,良好的跨平台支持和大量现有代码库是Java在此时仅有的两个重要优势。

答案 1 :(得分:-1)

在这种情况下,“更好的延迟”甚至意味着什么?

除此之外,我同意Jon Skeet。总的来说,C#是Java之前的光年。 Java中有一些巧妙的例子(例如枚举),但它们非常例外,而不是规则。