java错误两种方法对泛型有相同的擦除

Ela*_*nda 6 java generics compilation

我有这两种方法的接口。

E2EResult sendRoutingRequests(List<RoutingRequest> routingRequestsList);

E2EResult sendRoutingRequests(List<String> routingRequestsList);
Run Code Online (Sandbox Code Playgroud)

编译器喊道:

java error both methods have same erasure

我看到一些帖子谈论same erasurejava泛型。

有人可以解释这是为什么吗?

它与这篇文章不同,因为我不处理通配符。

Era*_*ran 4

编译器删除了泛型类型参数,因此List<String>List<RoutingRequest>成为 List,因此两个方法具有相同的签名。

  • @Elad Benda 不,没有。你可以很容易地找到:`List&lt;String&gt; l = ...; 列表&lt;RoutingRequest&gt; l2 = ...; System.out.println(l.getClass().equals(l2.getClass()));` (2认同)