kotlin支持jdk1.8編譯,使用Java8特性

最近使用的一個jar包裏面用到了java8 中接口的 static方法。這樣編譯的時候在gradle的build文件中要添加一點配置才行。 
普通的java工程在build.gradle中添加如下配置就可以了:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

這樣java8的新特性也是可以正常編譯了,但是上面的配置只是針對java代碼的編譯,kotlin代碼編譯的時候依然是使用的jdk1.6在編譯。 
要想kotlin也用jdk1.8編譯,需要添加kotlin相關的編譯配置,如下:

kotlinOptions {
        jvmTarget = '1.8'
    }

如果沒有加上面的設置,老版本的kotlin可以編譯,但是運行時會報錯,新版本的kotlin編譯時就會報錯:

Error:(20, 31) Calls to static methods in Java interfaces are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章