是否可以在Android中使用默认接口实现< API 24?

时间:2017-10-22 11:21:49

标签: java android

Android Studio 2.3.3,Java 8

我为Android 4.0 +创建Android应用

在我的 app / build.gradle

...
minSdkVersion 15
targetSdkVersion 26

我想使用默认接口实现(来自Java 8)。 所以我创建了tnext类:

public interface DefaultCallback {

    public default void onResponse(Call<T> var1, Response<T> var2) {

    }
}

但我收到编译错误:

默认方法要求API级别24(当前最小值为15)

所以问题是:

我可以在Android上使用deafult接口实现吗? API 24?

2 个答案:

答案 0 :(得分:17)

根据您的minSdk版本,您可能需要将以下内容添加到您的应用或模块的build.gradle文件中:

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

有关详细信息,请参阅https://developer.android.com/studio/write/java8-support.html#supported_features

答案 1 :(得分:3)

没有

默认方法需要API级别24。

来自https://developer.android.com/guide/platform/j8-jack.html#supported-features

  

Android不支持所有Java 8语言功能。然而   开发应用定位时,可以使用以下功能   Android 7.0(API级别24):

     
      
  • 默认和静态接口方法
  •   
  • Lambda表达式(也是   适用于API级别23及更低版本)
  •   
  • 可重复注释
  •   
  • 方法参考(也可在API级别23及更低版本上获得)
  •   
  • 类型注释   (也可在API级别23及更低版本上使用)
  •