Стирание Java с общей перегрузкой (без переопределения)

В моем домене есть FinanceRequests и CommisionTransactions. Если у меня есть список FinanceRequests, каждый запрос FinanceRequest может содержать несколько CommisionTransaction, которые необходимо вернуть. Не беспокойтесь, как именно это делается.

Класс ниже (самый нижний) заставляет меня чувствовать себя нечетким и теплым, поскольку он лаконичен и прекрасно повторно использует существующий код. Одна проблема Стирание типа.

public void clawBack(Collection<FinanceRequest> financeRequestList)  
public void clawBack(Collection<CommissionTrns> commissionTrnsList)

У них обоих одинаковая подпись после стирания, то есть:

Collection<FinanceRequest> --> Collection<Object>  
Collection<CommissionTrns> --> Collection<Object>  

Итак, eclipse жалуется, что:
Метод clawBack (Collection) имеет то же стирание clawBack (Collection), что и другой метод типа CommissionFacade

. Есть ли предложения по его реструктуризации, чтобы он оставался элегантным решением, обеспечивающим хорошее повторное использование кода?


public class CommissionFacade
{
    /********FINANCE REQUESTS****************/
    public void clawBack(FinanceRequest financeRequest)
    {
        Collection<CommissionTrns> commTrnsList = financeRequest.getCommissionTrnsList();           
        this.clawBack(commTrnsList);
    }

    public void clawBack(Collection<FinanceRequest> financeRequestList)
    {
        for(FinanceRequest finReq : financeRequestList) 
        {
            this.clawBack(finReq);
        }           
    }

    /********COMMISSION TRANSACTIOS****************/
    public void clawBack(CommissionTrns commissionTrns)
    {
        //Do clawback for single CommissionTrns         
    }

    public void clawBack(Collection<CommissionTrns> commissionTrnsList)
    {
        for(CommissionTrns commTrn : commissionTrnsList) 
        {
            this.clawBack(commTrn);
        }
    }

}
15
задан aioobe 26 August 2011 в 07:25
поделиться