java - 给定通用函数之间的区别?

标签 java generics

考虑两个函数:

public static void myFunction(List<?> list);

public static <T> void myFunction(List<T> list);

请解释为什么我们包含 <T>之前myFuction ,它意味着什么?

最佳答案

  1. 当您使用<?>时你告诉虚拟机你不这样做 知道列表中的对象类型,一种类型可以 不只一种类型。 List<?>相当于 List从 以前的 1.4 Java 版本中,您可以将任何类型添加到列表中 对象,并且对此没有任何限制。

  2. 当您使用<T>时您正在定义一个通用方法。你正在告诉 编译器认为List<T>T 类型的对象列表, 哪个 将通过对该方法的调用来确定,但您强制执行 List 中的所有对象都具有相同类型,T 。您包括<T>前 函数名称指定您正在定义泛型 方法,并且编译器知道T应该被视为一种类型 而不是变量。

关于java - 给定通用函数之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30989153/

相关文章:

c# - C# 中泛型的接口(interface)和继承

java - 带有 EditText Android 的动态 ListView

java - 子类的构造函数

java - 如何从 Java 调用 Kotlin 标准库函数?

java - 在 Java 中运行 MALLET

generics - dart 如何获取带索引的枚举?

java - 在字符串上调用替换会抛出 EvaluatorException

java - java中的泛型二叉搜索树

java - 在 Java 中使用类型化接口(interface)比接收特定类型的方法有什么优势?

java - 泛型的二维数组创建