воскресенье, 21 февраля 2010 г.

Я конечно же опять придираюсь

Захотелось глянуть, что javavmwrapper пихает в environment.
Написал, поглядел и почти успокоился.
for(Map.Entry item: System.getenv().entrySet()) {
System.out.println(item.getValue() + "=" + item.getKey());
}
Но черт надрал меня полюбопытствовать, добавив пару строчек.
for(Map.Entry item: System.getenv().entrySet()) {
String key, value;
key = item.getKey();
value = item.getValue();
System.out.println(key + "=" + value);
}
А компилятор глаголит:
incompatible types
found : java.lang.Object
required: java.lang.String
key = item.getKey();
^
Т.е. значение вызова getKey (и getValue) надо явно кастить к String, тогда работает.
Ну с какого хрена оно мне возвращает Object, когда в документации явно обещали коллекцию с элементами, в которых будут строки: public static Map<String,String> getenv().
Я конечно могу что-то упускать: мысль мелькнула, десять минут в документации, пару строчек -- появился результат, "всем спасибо, до новых встреч". Но со стороны как-то нелогично и неаккуратненько смотрится, при обилии явно указанных типов.

Комментариев нет: