Может кто-нибудь объяснить, почему этот код?java trernary operator
Collection c = (5 == 5) ? new ArrayList() : new HashSet();
производит следующее сообщение об ошибке компилятора:
Incompatible conditional operand types ArrayList and HashSet
По причинам, которые я не понимаю, следующие исправления проблемы
Collection c = (5 == 5) ? (Collection) new ArrayList() : new HashSet();
Я использую Java 1.4.
Обратите внимание, что первые компилируются на Java 1.5 и выше. – BalusC
Прекрасно работает на моей машине JDK от Sun. 1.6.0_16 – MAK
С точки зрения, но стоит спросить - похоже, что '5 == 5' не кажется странным никому, кроме меня. Насколько я понимаю, 'c' всегда будет оценивать' new ArrayList() '. Может ли кто-нибудь объяснить, почему было бы полезно делать 'Collection c = (5 == 5)? новый ArrayList(): новый HashSet(); 'вместо простого выполнения' Collection c = new ArrayList(); 'учитывая, что' (5 == 5) 'всегда оценивает' true'? –