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?

Другие вопросы по тегам