Java - нужно использовать оператор Diamond; конфликт между уровнем соответствия компилятора Android и уровнем поддержки оператора Diamond
Я очень новичок в Java, но немного читал и пытался сделать довольно простое приложение для Android в Eclipse. У меня есть следующая строка кода:
ArrayList<String> userNumbers = new ArrayList<>(Arrays.asList(userNumbersArray));
Конечно, я получаю ошибку:
<> не допускается для уровня ниже 1.7
Поэтому я изменяю уровень источника на 1.7 в Eclipse, а затем получаю ошибку:
Android требует уровня соответствия компилятора 5.0 или 6.0. Нашел "1,7" вместо этого. Пожалуйста, используйте Инструменты Android> Исправить свойства проекта.
Итак, я делаю это; затем уровень компилятора возвращается к 1.6, и теперь я получаю первую ошибку.
У меня вопрос: есть ли способ совместимости с android и оператором diamond или есть другой способ написать эту строку кода (все еще с использованием arraylist; необходимо указать, что это String).
Заранее спасибо!
1 ответ
Просто измените строку кода на
ArrayList<String> userNumbers =
new ArrayList<String>(Arrays.asList(userNumbersArray));
Это обозначение будет поддерживаться выше и ниже версии 1.7.
Если вы не добавляете строку в ромб в правой части уравнения, вы используете оператор ромба. Оператор diamond был добавлен для уменьшения многословности Java-кода, но на самом деле вам не нужно его использовать. Вы по-прежнему можете указать тип в ромбе справа от уравнения, если хотите.
Примечание. Если вы все еще изучаете Java и / или изучаете оператор Diamond, ответьте на этот вопрос: в чем смысл оператора Diamond в Java 7?