Просто экспериментом я обнаружил, что 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[])
}
}
Я ничего не могу найти в спецификации. Это ошибка? Если это не так, есть ли какие-либо причины для реализации такого языка?
UPD: Java 6 не компилирует этот пример. Вопрос в том, почему?