Java : What is - public static<T> foo() {. ..}?

标签 java generics static-methods

我看到了一个看起来像这样的 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/

相关文章:

Python 版本 <= 3.9 : Calling class staticmethod within the class body?

java - 按住键后做某事并在释放和按下时重复

swift 3 : Any way to declare a static class function to restrict closure type to Self?

c# - IList<T> 和 List<T> 与接口(interface)的转换

java - 未经检查的类型转换 : Wildcard wrapped by Class to another type wrapped by Class

java - 方法头中的 'static' 是什么意思?

java - 我需要一些用于 Java 和 xml 的 jar

java - 如何使用 javapns 从苹果的增强型通知格式中获取错误响应数据包

java - 数组中3个数字的最大乘积

静态成员函数中封闭类的 C++ 类型