今天在实现某个业务时,遇到了个如下场景:
某方法需要支持传入不同类型的 List ,并根据传入的 List 的不同泛型分别进行不同的操作。
Result action(List<String> a); Result action(List<Integer> a);
你觉得上面的代码能否通过编译?
答案是:不能。
在Java中,由于类型擦除的存在,泛型信息在编译后会被擦除,这意味着这两种方法签名在编译后看起来是相同的,故此代码不能通过编译。
创建时间: 6-21 16:36
浏览: 10
今天在实现某个业务时,遇到了个如下场景:
某方法需要支持传入不同类型的 List ,并根据传入的 List 的不同泛型分别进行不同的操作。
Result action(List<String> a); Result action(List<Integer> a);
你觉得上面的代码能否通过编译?
答案是:不能。
在Java中,由于类型擦除的存在,泛型信息在编译后会被擦除,这意味着这两种方法签名在编译后看起来是相同的,故此代码不能通过编译。
创建时间: 6-21 16:36
浏览: 10
*本文遵循 CC BY-NC-SA 许可协议。转载请注明出处!