我看到了一个看起来像这样的 java 函数-
public static<T> foo() {...}
我知道什么是泛型,但有人可以在这种情况下解释一下吗?谁决定 T 等于什么?这是怎么回事?
编辑:有人可以给我看一个这样的函数的例子吗。
最佳答案
您错过了返回类型,但除此之外它是一个通用方法。与通用类型一样,T
代表任何引用类型(如果给定则在范围内)。
对于方法,泛型参数通常由编译器推断。在某些情况下,您可能希望使用稍微特殊的语法自己指定通用参数:
List<String> strings = Collections.<String>emptyList();
在这种情况下,编译器可以推断出类型,但编译器是否可以推断并不总是很明显。注意,<>
在点之后。出于语法原因,必须始终指定类型名称或目标对象。
可能有泛型构造函数,但我从来没有在野外见过,而且语法变得更糟。
我相信 C++ 和 C# 语法将泛型类型放在方法/函数名称之后。
关于Java : What is - public static<T> foo() {. ..}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093130/