【问题标题】:What does class<P> mean in Java? [duplicate]Java 中的 class<P> 是什么意思? [复制]
【发布时间】:2012-11-28 08:48:31
【问题描述】:

可能重复:
What does the <TYPE> in java mean?

您好,我在调试时遇到了这个类,请有人给我指点它的含义。谢谢。

class Something<P>{
 private P someVariable;
}

//what does <P> mean here? 

谢谢。

【问题讨论】:

    标签: java generics class-template


    【解决方案1】:

    这是通用的。它允许您编写适用于不同类型的代码。

    试试这个教程:

    http://docs.oracle.com/javase/tutorial/java/generics/

    【讨论】:

      【解决方案2】:

      这意味着它是一个泛型类。 您可以通过更改代码来创建泛型类型声明

        "public class Box" to "public class Box<T>"
      

      有关更多信息,您可以查看此参考: http://docs.oracle.com/javase/tutorial/java/generics/types.html

      【讨论】:

        【解决方案3】:

        这是一个类模板的例子(尽管它在运行时被删除)。通常是类而不是类

        。它允许您在编译时将类型注入到类中。

        例如,如果你这样做了

        new Something<String>();
        

        那么 someVariable 将是 String 类型。

        如果你打电话

        new Something();
        

        那么我相信 someVariable 将是 Object 类型,因为它没有推断的类型信息。通常你的 IDE 会给你一个警告。

        它也被描述为here

        【讨论】:

        • 这不太正确。泛型的类型在运行时被擦除。泛型只影响编译时的类型安全检查。
        • @MelNicholson 同意删除 - 但我的回答的哪一部分说它没有被删除?随时更新以使其成为更好的答案-我可能表达得不够清楚。谢谢
        【解决方案4】:

        P 是用于泛型的类型。

        通常是T,或TEntity,用于类型或实体类型。

        只需将ArrayList&lt;string&gt; 视为类型为string 的示例。

        【讨论】:

          【解决方案5】:
          这是一个通用类定义。
          
          &ltP&gt 是在编译时被替换的对象的占位符。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-12-03
            • 1970-01-01
            • 1970-01-01
            • 2012-08-13
            • 2013-02-11
            • 2011-06-06
            • 2015-12-03
            相关资源
            最近更新 更多