Solo con el experimento, descubrí que los métodos no estáticos de Java anulan todos los mismos métodos nombrados en el alcance, incluso en el contexto estático. Incluso sin permitir la sobrecarga de parámetros. ComoImportaciones estáticas de Java
import java.util.Arrays;
import static java.util.Arrays.toString;
public class A {
public static void bar(Object... args) {
Arrays.toString(args);
toString(args); //toString() in java.lang.Object cannot be applied to (java.lang.Object[])
}
}
No puedo encontrar nada sobre esto en la especificación. ¿Es esto un error? Si no es así, ¿hay alguna razón para implementar un lenguaje como ese?
UPD: Java 6 no compila este ejemplo. La pregunta es, ¿por qué?
Parece estar refiriendo a su súper objeto 'toString()' –
en mi humilde opinión, toda la funcionalidad de importación estática es un mal concepto, contaminando los espacios de nombres y la lectura del código messing. No seas flojo, no es demasiado difícil escribir la clase/interfaz adjunta de una función estática, tenemos IDEs para eso. Intenta evitar el uso de importaciones estáticas. – buc
@Jigar Joshi, Se ve tan. Pero no puedo encontrar nada. Y más, no podemos llamar 'Object.toString' desde el contexto estático, así que no veo ninguna lógica en este comportamiento. –