蚂蚁中的Java类型擦除编译问题

Vic*_*tor 0 java ant

在java类中,我有一个像这样的重载方法:

method1(List<Details1HO> input){};
Run Code Online (Sandbox Code Playgroud)

method1(List<Details2HO> input){}; 两者Details2HODetails1HO扩展同一个类DetailsHO.RAD构建类很好,但ant给出了错误:

name clash: method1(java.util.List<Details1HO>) and method2(java.util.List<Details1HO>) have the same erasure
Run Code Online (Sandbox Code Playgroud)

在ant和RAD
EDIT中,Java版本都是1.5 :这些方法有不同的返回类型
EDIT#2:真正的错误:

name clash: mapToDO(java.util.List<com.bmo.ctp.alerts.businessobjects.user.hibernate.DeliveryDomainRestrictionHO>) and mapToDO(java.util.List<com.bmo.ctp.alerts.businessobjects.subscription.hibernate.SubscriptionDetailsHO>) have the same erasure
Run Code Online (Sandbox Code Playgroud)

真实声明:

public static DeliveryDomainRestrictionDO[] mapToDO(List<DeliveryDomainRestrictionHO> deliveryDomainRestrictions){}

public static List<SubscriptionSummaryDO> mapToDO(List<SubscriptionDetailsHO> input) {}
Run Code Online (Sandbox Code Playgroud)

Lyc*_*cha 5

Java不允许仅使用不同的泛型参数进行重载.从运行时的角度来看,两者都只是将列表作为参数的方法.