que - ¿El EL soporta métodos sobrecargados?
sobrecarga de metodos en java netbeans (2)
EL no lo soporta, no. Siempre será el primer método de la matriz Class#getMethods()
cuyo nombre (y cantidad de argumentos) coincide con la llamada al método EL. Si devuelve el mismo método cada vez o no, depende de la versión / marca utilizada de la JVM. Tal vez usted también hizo una actualización de Java SE mientras tanto. El javadoc incluso dice esto:
Los elementos de la matriz devueltos no están ordenados y no están en ningún orden en particular.
No debes confiar en un comportamiento no especificado. Dales un nombre diferente.
Actualicé mi aplicación web Java EE para usar la versión más reciente de PrimeFaces y, de repente, la llamada de un método de bean sobrecargado en un atributo de acción de PrimeFaces commandlink ya no funcionaba. Intenté usar el enlace de comando predeterminado de JSF para probarlo y éste tampoco funcionó.
Las firmas del método son las siguientes:
public void updateA(B b);
public void updateA(A a);
Siempre trató de lanzar de A a B.
Más curioso, ¿cómo podría funcionar antes de la actualización?
La forma en que puede evitar esto es crear un método genérico y hacer el ''enrutamiento'' dentro de ese método. Sé que esto podría no ser lo ideal, pero terminas con menos configuraciones en las funciones y páginas XHTML.
if (A.class.isInstance(obj)) {
A o = (A) obj;
return method(o, highRes);
} else if (B.class.isInstance(obj)) {
B o = (B) obj;
return method(o, highRes);
} else if (C.class.isInstance(obj)) {
C o = (C) obj;
return method(o, highRes);
} else {
throw new FacesException("Unsupported Conversion: " + obj);
}