невозможно разрешить метод stream ()

android-studio java-8

2700 просмотра

1 ответ

Я использую

java version 1.8._101

Android studio 2.1.3

Gradle version 2.14.1

minSdkVersion 15

targetSdkVersion 23

buildToolsVersion '23.0.3'

Попробуйте отфильтровать, arrayListиспользуя java 8 lambdaвыражение как

ArrayList<Object> listObject = ......();
listObject.stream();

но это дает мне cannot resolve method stream()

Я уже отсылаю это

Автор: Pitty Источник Размещён: 08.11.2019 11:01

Ответы (1)


2 плюса

Решение

2018 Обновление: разъем больше не поддерживается. Текущее руководство по поддержке Java 8 доступно здесь: https://developer.android.com/studio/write/java8-support.html. Особенно полезна таблица, в которой показано, какие части Java8 доступны на каких уровнях API.


ИНФОРМАЦИЯ НИЖЕ УСТАРЕЛА

Видеть

Ключевые части build.gradle:

android {
  compileSdkVersion 24
  buildToolsVersion "24.0.1"
  ...
  defaultConfig {
    minSdkVersion 24
    targetSdkVersion 24
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

}

При использовании Stream apis выдается сообщение об ошибке «Для вызова требуется API уровня 24». Вы можете скрыть это позади @TargetApi(24), но тогда потребуется альтернативная реализация для более низких уровней API. Чтобы использовать без ограничений, minSdkVersion должно быть до 24

После обновления build.gradle убедитесь, что в представлении «Проект» во внешних библиотеках отображается «Платформа Android API 24». Если нет, выполните Сервис-> Android-> Синхронизировать проект с файлами Gradle.

Затем смог пройти следующий тест, чтобы пройти

@Test
public void testStream() throws Exception {
    assertThat(Arrays.asList(1, 3, 4).stream().reduce(0, (i, j) -> i + j), is(8));
}
Автор: Stan Kurdziel Размещён: 20.08.2016 08:00
Вопросы из категории :
32x32