Java:什么是 - public static <T> foo(){...}?

qui*_*lby 5 java generics static-methods

我看到一个看起来像这样的java函数 -

public static<T> foo() {...}
Run Code Online (Sandbox Code Playgroud)

我知道什么是泛型,但有人可以解释这个背景吗?谁决定T等于什么?这里发生了什么?

编辑:有人可以给我看一个像这样的功能的例子.

Tom*_*ine 11

你错过了返回类型,但除此之外它是一种通用的方法.与泛型类型一样,T代表任何引用类型(如果给定,则在边界内).

对于方法,通用参数通常由编译器推断.在某些情况下,您可能希望使用稍微特殊的语法自己指定泛型参数:

    List<String> strings = Collections.<String>emptyList();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,编译器可以推断出类型,但编译器是否可以并不总是很明显.注意,<>是在点之后.出于语法原因,必须始终指定类型名称或目标对象.

有可能有通用的构造函数,但我从来没有见过一个,语法变得更糟.

我相信C++和C#语法将泛型类型放在方法/函数名之后.