【问题标题】:private static <T> T cloneX(T x) - What does the <T> signify here?private static <T> T cloneX(T x) - <T> 在这里表示什么?
【发布时间】:2010-04-12 13:11:31
【问题描述】:

在上面的声明中,&lt;T&gt; 是什么意思?

我想知道拥有&lt;T&gt; 和没有拥有它的区别?它对代码有何影响?

【问题讨论】:

  • 反引号中的环绕代码 sn-ps。你的&lt;T&gt; 没有出现。

标签: java generics method-signature


【解决方案1】:

&lt;T&gt; 这里表示类型是从参数中隐含的。所以:

public static <T> List<T> createList(T... args) {
  List<T> ret = new ArrayList<T>(Arrays.asList(args));
}

可以使用:

List<String> list = createList("one", "two", "three");

List<Integer> list2 = createList(1, 2, 3);

【讨论】:

    【解决方案2】:

    这只是意味着您将从您正在输入的方法中获得相同的类,以将其保存为 Object 并且您必须一直进行转换。

    【讨论】:

      【解决方案3】:

      &lt;T&gt; 是您传递给该通用方法的参数的类型。

      【讨论】:

        【解决方案4】:

        它是通用参数。如果你写那么

        string s = ...;
        clone(s); // will be expanded to string clone(string x)
        

        【讨论】:

          猜你喜欢
          • 2012-05-14
          • 2014-01-19
          • 2017-10-08
          • 2019-03-05
          • 1970-01-01
          • 2016-06-10
          • 2010-11-08
          • 1970-01-01
          相关资源
          最近更新 更多