首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android < API 24中可以使用默认接口实现吗?

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

Stack Overflow用户
提问于 2017-10-22 11:21:48
回答 2查看 9.7K关注 0票数 17

Android 2.3.3,Java 8

我为Android 4.0+创建了Android应用程序

在我的app/build.gradle

代码语言:javascript
复制
...
minSdkVersion 15
targetSdkVersion 26

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

代码语言:javascript
复制
public interface DefaultCallback {

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

    }
}

但是我得到了编译错误:

默认方法所需的API级别24 (当前最小值为15)

所以问题是:

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-07 20:56:31

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

代码语言:javascript
复制
android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

有关更多细节,请参见features

票数 27
EN

Stack Overflow用户

发布于 2017-10-22 11:24:16

不是的。

默认方法需要API级别24。

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

Android并不支持所有Java 8语言特性。但是,在开发针对Android7.0 (API级别24)的应用程序时,可以使用以下特性:

  • 默认和静态接口方法
  • Lambda表达式(也可在API级别23及更低版本上使用)
  • 可重复注释
  • 方法引用(也可在API级别23及更低版本上获得)
  • 类型注释(也可在API级别23及更低版本上使用)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46873467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档