【问题标题】:Java syntax question: <O> O accept(ObjectVisitorEx<O> visitor)Java 语法问题:<O> O accept(ObjectVisitorEx<O> visitor)
【发布时间】:2009-06-23 21:26:09
【问题描述】:

关于 Java 语法的幼稚问题。是什么

<T> T accept(ObjectVisitorEx<T> visitor);

是什么意思?什么是 C# 等价物?

【问题讨论】:

  • 那不是'O'(哦)和'0'(零)吗?
  • 这是一个“O”(哦),但看起来确实像一个零。
  • O 可能不是最好的标识符...

标签: c# java generics syntax translation


【解决方案1】:

在 C# 中可能是:

O Accept<O>(ObjectVisitorEx<O> visitor);

【讨论】:

  • 添加 Accept 和仅 Accept 作为接受的答案有什么区别?
  • 有了@AgileJon 的回答,这个类是通用的。这样只有方法是通用的...
  • 原来的问题确实问的是泛型方法。
  • (如果将两个版本放在一起(例如通过接受这个答案),差异会更加明显。)
【解决方案2】:

C# 等价物或多或少是相同的。如果访问者是一个界面,那将是

O Accept(IObjectVisitorEx<O> visitor);

【讨论】:

  • 你不需要在某处声明 O 吗?
【解决方案3】:

这用于将类型作为参数传递。 C# 语法相同 ()。建议在谷歌上搜索术语“泛型”,因为这是您要查找的术语。

【讨论】:

    【解决方案4】:

    Here's 很好地比较了 Java 和 C# 泛型。

    【讨论】:

      【解决方案5】:

      参见 Java:http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html
      和 C#:http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx
      一个类似的 C# 方法可能是

      public T Foo<T>(Queue<T> v) // Queue<T> chosen for simplicity
      {
        return v.Dequeue();
      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-04
        相关资源
        最近更新 更多