根据 使用Java 8语言特性 ,方法引用与任何minSdkVersion兼容,那为什么方法引用需要API级别22 ?
目前,我正在使用Android Studio 3.2.1 和 JDK 1.8,并在build-gradle中具有:
目前,我正在使用Android Studio 3.2.1 和 JDK 1.8,并在build-gradle中具有:
com.android.tools.build:gradle:3.2.1
。android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
例子
public class SimpleBundleEntry<V> extends BundleEntry<V> {
public SimpleBundleEntry(String key, V value,
BundleWriter<V> writer, BundleReader<V> reader)
{/*init*/}
// ...
public interface BundleReader<V> {
V readValue(Bundle bundle, String key);
}
public interface BundleWriter<V> {
void writeValue(Bundle bundle, String key, V value);
}
}
有问题的代码
public static BundleEntry<Boolean> ofBoolean(String key, Boolean value) {
return new SimpleBundleEntry<>(key, value,
Bundle::putBoolean, // <------------------- PROBLEM HERE
(bundle, k) -> bundle.getBoolean(k));
}