Можно ли использовать Java 8 Stream API на Android API
Я прочитал этот пост здесь. Но все же я не могу запустить код, содержащий Java 8 Stream API функции, такие как следующие на minSdkVersion
List<Car> newCars = cars.stream()
.filter(s -> s.getColor().equals("red"))
.collect(Collectors.toList());
Это не выполняется из-за сообщения об ошибке
для вызова требуется уровень API 24 (текущая минута-15): java.утиль.Коллекция#трансляция
Так кто-нибудь знает решение?
2 ответов:
вы не можете использовать потоки Java8 на уровне API
тем не менее, есть некоторые библиотеки, которые поддерживают некоторые функции потока
https://github.com/aNNiMON/Lightweight-Stream-API
https://github.com/konmik/solid
https://sourceforge.net/projects/streamsupport/ (упоминается @sartorius в комментарии)
с момента выпуска 8.2 из DexGuard можно использовать Java 8 streams API также на устройствах Android streamsupport библиотека и DexGuard переведут все вызовы Java 8 stream API в предоставленную библиотеку. Никакой дополнительной обработки не требуется, и разработчики могут просто кодировать с помощью предоставленного Java 8 streams API. Зависимости также переводятся автоматически, поэтому можно использовать библиотеки с Java 8 имеет также для разработки Android.
эта функция также будет включена в ProGuard в ближайшем будущем, следите за обновлениями.
Comments