Android中使用Java8 新增语言功能

支持 Java 8 语言功能需要一个名为 Jack 的新编译。Jack 仅在 Android Studio 2.1 和更高版本上才受支持。因此,如果要使用 Java 8 语言功能,则需使用 Android Studio 2.1 开发应用。


Android 并非支持所有 Java 8 语言功能。不过,以下功能在开发面向 Android 7.0(API 级别 24)的应用时可用:

:类型注解信息仅在编译时可用,而在运行时不可用。


要使用新的 Java 8 语言功能,还需使用新的 Jack 工具链。新的 Android 工具链将 Java 源语言编译成 Android 可读取的 Dalvik 可执行文件字节码,且有其自己的 .jack 库格式,在一个工具中提供了大多数工具链功能:重新打包、压缩、模糊化以及 Dalvik 可执行文件分包。

以下是构建 Android Dalvik 可执行文件可用的两种工具链的对比:

  • 旧版 javac 工具链:
    javac (.java → .class) → dx (.class → .dex)
  • 新版 Jack 工具链:
    Jack (.java → .jack → .dex)

配置 Gradle

要为您的项目启用 Java 8 语言功能和 Jack,请在模块级别的 build.gradle 文件中输入以下内容:

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

默认和静态接口方法使用方式如下:


首先定义接口Person

public interface Person {
//    静态实现方法
    static  Person getPerson(){
        return  new Student();
    }
//    默认实现方法
    default Person  getInstance(){
        return  new Student();
    }

    void show();
}

接着是实现Person的类Student


class Student implements Person {
    public Student() {
    }

    @Override
    public void show() {

    }
}

Java8允许在接口中添加具体方法实现,可以通过两种方式:用静态方法来实现或者添加接口默认方法(方法最前面加上default表示即可)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值