在oracle的官方java文档Type Inference章节中,有一个这样的例子:
static <T> T pick(T a1, T a2) { return a2; }
Serializable s = pick("d", new ArrayList<String>());
Run Code Online (Sandbox Code Playgroud)
在这种情况下,类型参数是T但是传递了两种不同的类型,不应该a1的类型与a2相同吗?
推理算法确定参数的类型,如果可用,还确定分配或返回结果的类型.最后,推理算法试图找到适用于所有参数的最具体类型.
而对于你的例子最具体的类型Serializable,这是祖先都String和ArrayList.
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |