static <T> T pick(T a1, T a2) { return a2; }Serializable s = pick("d", new ArrayList<String>());如果我正在引用String或任何其他类型.编译器抛出错误.
你能帮我理解为什么java推断它为Serializable?
a1,你传递的"d"是类型String.a2,你传递的new ArrayList<String>()是类型ArrayList<String>最接近的String和ArrayList的常见超类型是Serializable.如果你写了它也会工作:
Object s = pick("d", new ArrayList<String>());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |