Можно ли использовать 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.утиль.Коллекция#трансляция




Так кто-нибудь знает решение?

562   2  

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

    Ничего не найдено.