【问题标题】:Java Generics for C# Gurus [closed]C# 大师的 Java 泛型 [关闭]
【发布时间】:2009-08-08 01:31:43
【问题描述】:

从完全了解 C# 泛型的人的角度来看,是否有任何关于 Java 泛型的快速参考指南(最好是在线的)?我发现语法是如此相似,以至于我希望它能够正常工作,然后我遇到了不熟悉的 Java 语法,如下所示:

Class<?> foo;

我认为类似于 C#:

Type<T> foo;

但这在我所看到的上下文中似乎没有任何意义。尤其是因为 T 缺少上下文,就像在 C# 中那样。

【问题讨论】:

  • 感谢所有回答的人。 3 个答案中的每一个都有我正在寻找的部分。

标签: c# java generics reference


【解决方案1】:

http://www.jprl.com/Blog/archive/development/2007/Aug-31.html 在这个主题上有一篇相当不错的帖子。

这里也有一个帖子,其中包含一些可能会有所帮助的进一步讨论 C# vs Java generics

【讨论】:

  • 这是一个有用的链接。我认为这个答案最能满足整个问题。
【解决方案2】:

您所问的称为未绑定通配符。 不幸的是,C# 不支持它们。 C# 2.0-3.5 也没有实现协变和逆变泛型。后面介绍的是C# 4.0。 您可以在 C# 中编写 Class&lt;object&gt; foo; 而不是 Class&lt;?&gt; foo;。 基本上 ?在 Java 泛型中引入是为了向后兼容旧版本。

简短的回答是否定的,您没有直接表示 ?在 C# 中,我建议您将其替换为对象类型,或者将其模板化,将整个类转换为模板类。

【讨论】:

  • 我很欣赏有关具体示例的详细信息。但在 C# 中,Class 被称为 Type,它不是通用的,因此您不能向其添加通用参数。因此,如果我理解正确,与 Class&lt;?&gt; 最接近的 C# 匹配将是 Type
【解决方案3】:

【讨论】:

  • 很好的链接作为权威参考。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多