2012-05-03 13 views
43

Sto provando ad accedere a un metodo in una classe che ho creato, ma poiché è simile nel nome e nel numero di argomenti il ​​mio IDE dice che il metodo è ambiguo. Ecco un mock-up di quello che i due metodi assomigliano:Come scegliere tra due metodi con lo stesso nome in Java

methodName(X, Y, Z) 
methodName(A, Y, Z) 

ho chiamato sul metodo, e superato il valore null per il primo argomento per lo scopo della mia prova. Purtroppo non posso rinominare i metodi, cambiare l'ordine degli argomenti o modificare la struttura del metodo in alcun modo. C'è un modo per differenziare tra questi due metodi?

+37

Scopri chi ha progettato quell'API, scopri dove vivono e brucia la loro casa. – alexg

+1

@alexg Mi sembra di ricordare di averlo fatto prima, anche se dimentico quale API; è improbabile che sia stato un nuovo Thread (null, "name") per esempio. – Neil

+7

@alexg Poiché la domanda "Sto tentando di accedere a un metodo in una classe che ho creato", user1373493 potrebbe masterizzare la propria casa o ridisegnare l'API. – emory

risposta

91

Fusioni il primo argomento al tipo del primo parametro del metodo che si desidera chiamare, per esempio:

methodName((A) null, y, z); 
+0

Grazie, ha funzionato come un incantesimo. – tamuren

0

Potete utilizzare la riflessione sull'oggetto per acquisire il metodo di lista? In tal caso, puoi quindi richiamare esplicitamente il metodo che ti interessa. Credo che la risposta di fivedigit sia probabilmente migliore ...

Problemi correlati