【发布时间】:2020-02-13 03:48:59
【问题描述】:
我正在阅读和审查以下网站并有一个问题。
https://www.geeksforgeeks.org/angle-bracket-in-java-with-examples/
在下面的解释中,它们显示了类定义,后跟<T>,然后在实际实现这些类时,它们使用不同的类型,例如或作为参数。我的问题是:'' 符号实际上是 Java 中定义的语法吗?特别是,为了定义“通用”,T 是必要的吗?然后它基本上意味着参数可以是多种不同的类型吗?另外,如果有人可以用更简单的术语改写或解释泛型的含义,那将非常有帮助。谢谢。
【问题讨论】:
-
那个网站看起来不错;我不确定我们还能添加什么。是的,
T是必要的——在他们的class Test示例中,它在声明局部变量T obj;和声明public T getObject()等方法时使用。对于Test的每个实例,它们从编译时声明的类型中获取类型 - 例如,Test<String> sObj表示 sObj 将有一个String类型的实例变量obj,并且它的getObject()方法返回一个 @ 987654333@. -
好的 - 我的理解是否正确,我上面描述的?换句话说,T 是泛型语法的实际部分,这意味着 Class 的参数可以是变量类型?
-
<T>是泛型类型。也许阅读official tutorial。 -
是的,具有一种(或多种)类型的尖括号是泛型的语法。 T(确认,可以是任何标识符)用作(实际上,被替换)提供的类型的占位符。除此之外,我不确定您的意思是“类的参数可以是变量类型”。
-
感谢 Ole V.V. - 我喜欢其中一个解释的一部分:在类名之后指定尖括号意味着您正在创建一个可以保存任何类型数据的临时数据类型。
标签: java generics syntax type-parameter