【问题标题】:Android java.lang.NoSuchMethodError: java.util.List.stream use java 8 Lambda ExpressionsAndroid java.lang.NoSuchMethodError: java.util.List.stream 使用 java 8 Lambda 表达式
【发布时间】:2017-03-29 16:53:43
【问题描述】:

使用 java 8 Lambda 表达式
我正在为 Android Studio 使用 Java JDK 版本 jdk1.8.0_77。
我还在 gradle 中添加了 jackOptions
我已经创建了简单的列表并添加了方法过滤器并进行了排序,但经过很长时间我已经搜索但没有任何解决方案。

Gradle 文件

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    jackOptions {
        enabled true
    }
    applicationId "com.mobisharnam.meme"
    minSdkVersion 18
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
compileOptions {

    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'

MainActivity

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    List<String> list =
            Arrays.asList("a1", "a2", "a3", "b1", "c2", "c1");


   list.stream().
            filter(s -> s.startsWith("c")).
            sorted().forEach(s -> Log.d("TEST", s));

}
}

【问题讨论】:

标签: java android


【解决方案1】:

问题是您没有正确链接流方法,您可以查看以下代码:

list.stream().
            filter(s -> s.startsWith("c")).
            sorted().forEach(s -> Log.d("TEST", s));

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 2015-06-01
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多