2014-11-11 4 views
2

Используя новые инструменты построения Gradle, я могу установить исходный уровень моего Android-кода на Java 7 из Java 6. Это дает мне доступ к множеству тонкостей, таких как <>, строковые переключатели, и сбрасываемый try catch.Использование уровня Java 7 в библиотечных проектах

Я работаю над проектом библиотеки андроидов. Если я использую исходный уровень 7 в своей библиотеке, и клиент использует исходный уровень 6 в своем приложении, будет ли конфликт?

+1

Не думайте так. Большинство классных функций Java 7 (помимо InvokeDynamic) - это в основном компиляторы. Байт-код должен оставаться тем же ... –

ответ

1

Вы в порядке, если используете только источник уровень 1.7 и не используйте ни один из API-интерфейсов, представленных на Java 7 (вот почему ваша IDE будет жаловаться, если у вас нет реальной Java 6 JDK, если вы нацелились на Java 6). Убедитесь, что ваш целевой уровень установлен на 1.6.

+0

Так что хорошо использовать такие вещи на уровне источника, как складной улов, строковые переключатели и т. Д.? – jophde

+0

@jophde Конечно, если сахар является просто ярлыком для синтаксиса, вы можете ввести более вербально в более старую версию. Алмазный оператор прекрасен; 'try-with-resources', который использует новый интерфейс (' AutoCloseable'), вероятно, нет, хотя я его не пробовал. Лямбдас прямо. – chrylis