为什么Java通用列表返回类型两次指定类型?

问题描述 投票:0回答:1

以下方法返回由T类型元素组成的List。因此,在返回类型<T> List<T>中,List<T>是有意义的,因为这是返回值的类型。前面的<T>有什么需要?

没有<T>List<T>都无法编译代码。

public <T> List<T> getTheList() {
  return new ArrayList<T>();
}
java generics
1个回答
0
投票

第一个<T>表示第二个T是通用参数的占位符,而不是要存储在该列表中的类的实际名称。

[没有第一个<T>编译器会将T视为类名(例如ObjectString等),请尝试在存在该方法的类的同一包中查找名为T的类或在使用该方法的类的导入部分中。如果编译器无法找到名为T的类,则将显示编译错误。

© www.soinside.com 2019 - 2024. All rights reserved.