java - Class 类型中的方法 foo(T[]) 不适用于参数(Vector)
问题描述
有人可以解释一下这T[]
是什么意思吗?什么可以被接受,为什么?
public class Class {
public static <T extends Comparable<T>> int[] foo(T[] s) {
// ...
}
public static void main(String[] args) {
int[] intArray1 = new int[10];
int[] ris = foo(intArray1); // nope
Vector<Integer> intArray2 = new Vector<Integer>(10);
int[] ris = foo(intArray2); // nope
Integer[] intArray3 = new Integer[10];
int[] ris = foo(intArray3); // ok
}
}
解决方案
T[]
是一个T
s 的数组。就像 aString[]
是String
s 的数组一样。
方法签名:public static <T extends Comparable<T>> int[] foo(T[] s)
意味着:
- 该方法需要一个数组
T
- T 扩展可比
- 该方法返回一个
int[]
简而言之,这意味着:从数组中获取对象时,您知道可以调用.compare()
它们,并且它将int
以标准Comparable
格式返回 an 。
推荐阅读
- python - 格式化不同十进制值的整数Python
- marquee - 如何连续滚动图像而没有间隙?
- typescript - 在 VSCode 中,如何通过 IntelliSense 导入 React?
- wpf - 如何将 RestClient 与 Oauth 2.0 和 Client + TLS 证书一起使用?
- python - Sonarqube 客户端无法解析 pytest 覆盖结果
- node.js - 我想在 lambda 函数中异步调用外部 API(天气 API)
- odoo - 哪个数据库表存储odoo用户登录详细信息
- spring-boot - 类型与 KFunction1 不匹配
> - sql-server - 当条件为“缺少数据”时,如何创建条件类型的 JOIN 或 WHERE 子句?
- android - 如何在 didChangeAppLifecycleState(iOS 和 android 设备)上完全重启颤振应用程序