2012-05-03 28 views
43

Estoy intentando acceder a un método en una clase que hice, pero dado que es similar en nombre y número de argumentos, mi IDE dice que el método es ambiguo. Aquí hay una maqueta de lo que los dos métodos se parecen:Cómo elegir entre dos métodos del mismo nombre en Java

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

Llamé en el método, y pasaron en el valor null para el primer argumento con el propósito de mi prueba. Lamentablemente, no puedo cambiar el nombre de los métodos, cambiar el orden de los argumentos o modificar la estructura del método de ninguna manera. ¿Hay alguna manera de diferenciar estos dos métodos?

+37

Descubre quién diseñó esa API, aprende dónde viven y quema su casa. – alexg

+1

@alexg Me parece recordar haber tocado esto antes, aunque olvidé qué API; es poco probable que haya sido un nuevo hilo (nulo, "nombre"), por ejemplo. – Neil

+7

@alexg Dado que la pregunta "Estoy intentando acceder a un método en una clase que hice", el usuario1373493 podría quemar su propia casa o rediseñar la API. – emory

Respuesta

91

moldeada el primer argumento con el tipo del primer parámetro del método al que desea llamar, por ejemplo:

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

Gracias, funcionó como un encanto. – tamuren

0

¿Se puede utilizar la reflexión sobre el objeto de adquirir la lista de método? De ser así, podría invocar explícitamente el método relevante para usted. Creo que la respuesta de fivedigit es probablemente mejor ...

Cuestiones relacionadas