пятница, 29 февраля 2008 г.

Java Puzzle 71: Import Duty

Проверка знаний о статическом мпорте, появившемся в JDK 5. Что напечатает следующая программа?
import static java.util.Arrays.toString;
class ImportDuty {
public static void main(String[] args) {
printArgs(1, 2, 3, 4, 5);
}
static void printArgs(Object... args) {
System.out.println(toString(args));
}
}

Программа не скомпилируется, так как члены класса в области видимости имеют преимущество перед статическим импортом. Поэтому не рекомендуется их использовать, так как появление в классе-родителе метода с таким же именем приведёт к порой незаметному изменению работы программы.

2 комментария:

  1. Если честно, до сих пор не понимаю, зачем все ж таки придумали этот статический импорт...?

    ОтветитьУдалить
  2. Из новых фич Java 5 мне непонятно введение Static Import и очень не нравится Autoboxing (против Unboxing ничего не имею). Annotations - удобная вещь для разработчиков средств обработки кода. Enhanced for Loop и Typesafe Enums - очень удобные шорткаты. Ну а Generics выглядят недоработанными, хотя и имеют некоторе плюсы при программировании...

    ОтветитьУдалить