2012-05-03 4 views
43

Ich versuche auf eine Methode in einer Klasse, die ich gemacht, aber da es in Name und Anzahl der Argumente ähnlich ist meine IDE sagt, die Methode ist mehrdeutig. Hier ist ein Mock-up, was die beiden Methoden wie folgt aussehen:Wie wählen Sie zwischen zwei Methoden mit dem gleichen Namen in Java

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

ich auf der Methode aufgerufen, und in dem Wert null für das erste Argument für den Zweck meines Test bestanden. Leider kann ich die Methoden nicht umbenennen, die Reihenfolge der Argumente ändern oder die Struktur der Methode in irgendeiner Weise ändern. Gibt es eine Möglichkeit, zwischen diesen beiden Methoden zu unterscheiden?

+37

Finden Sie heraus, wer diese API entwickelt, zu lernen, wo sie leben und ihr Haus niederbrennen. – alexg

+1

@alexg Ich scheine mich daran zu erinnern, dass ich das vorher getroffen habe, obwohl ich die API vergessen habe; Es ist unwahrscheinlich, dass es zum Beispiel ein neuer Thread (null, "name") war. – Neil

+7

@alexg Da die Frage lautet "Ich versuche auf eine Methode in einer Klasse zuzugreifen, die ich gemacht habe" könnte User1373493 ihr eigenes Haus niederbrennen oder die API neu gestalten. – emory

Antwort

91

Guss das erste Argument der Art des ersten Parameters der Methode, die Sie aufrufen möchten, zum Beispiel:

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

Danke, arbeitete wie ein Charme. – tamuren

0

Können Sie Reflexion auf dem Objekt die Methode Liste zu erwerben? Dann könnten Sie explizit die für Sie relevante Methode aufrufen. Ich glaube, dass fünfstellige Antwort ist wahrscheinlich besser, aber ...

Verwandte Themen