您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Kotlin接口與Java8新特性接口的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
接口增強
在 Java8 的中接口特性中增加以下倆種特性:
在接口中可以使用 default 關鍵字修飾默認方法或擴展方法,抽象方法因為其特性的原因無法使用
接口可以使用 static 聲明為靜態方法,可以通過類直接調用Android Studio 中使用 Java8 需要在模塊中的 build.gradle 中配置指定的版 Java 版本,當然使用 Kotlin 為開發語言的話需要為 Kotlin 指定 Jvm 版本,因為 Kotlin 使用的是 Jvm 1.6
那么下面就來展示他們的配置方法:
android { defaultConfig { ... kotlinOptions { jvmTarget = '1.8' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
經過以上的配置就可以使用 Java8 的新特性了代碼示例:
puclic interface onTest{ void onTestStandardMenthod(); default void onTestDefaultMethond(){ // 默認的邏輯 } static void onTestStaticMenthod(){ // 默認的邏輯 } } public class TestActivity extends AppCompatActivity implements onTest{ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 通過類名調用的接口 onTest.onTestStaticMenthod(); // 通過對象的形式調用 代碼只用來舉例說明 new TestActivity.onTestStandardMenthod() new TestActivity.onTestDefaultMethond() } @Override public void onTestStandardMenthod(){} // 必須實現 @Override public void onTestDefaultMethond(){} // 可以選擇性實現 }
上面的代碼是展示如何使用,如果對具體的細節想了解的更清楚可以查看官方的文檔
可能有朋友好奇我為什么先講 Java,因為 Kotlin 的語法結構和關鍵字是不一樣的雖然實現的思路是一樣的,所以先從 Java 開始,另外是近年 Jvm 版本升級很快,基礎概念不會改變,但有新的特性是正常的,如果有常看文檔的朋友會發現有些方法實現的方式和細節也會發生改變。
接下來開始 Kotlin 的部分,這部分看起來與 Java 8 相似,但實際上并沒有使用 Java 8 的特性,但為了好理解一些可以寫成類似的思路。
internal interface onTest { fun onTestStandardMenthod() fun onTestDefaultMethond() { // 默認的邏輯 } companion object { fun onTestStaticMenthod() { // 默認的邏輯 } } } class TestActivity : AppCompatActivity , onTest{ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 通過類名調用的接口 onTest.onTestStaticMenthod() // 通過對象的形式調用 代碼只用來舉例說明 TestActivity.onTestStandardMenthod() TestActivity.onTestDefaultMethond() } // 必須實現 override fun onTestStandardMenthod(){} // 可以選擇性實現 override fun onTestDefaultMethond(){ super.onTestDefaultMethond()} }
Kotlin 的接口與 Java 8 類似,既包含抽象方法的聲明,也包含實現。與抽象類不同的是,接口無法保存狀態。它可以有屬性但必須聲明為抽象或提供訪問器實現,如果對 Kotlin 的接口不明白的的話可以點這里查看更詳細的說明。
Kotlin 的接口可以選擇是否有方法體,對比之下的話 Java8 需要聲明 default 后可以有方法體,靜態接口的方法其實在實現概念上是一樣的,或許說目前的面向對象萬變不離其中吧,根據語言的靈活性結合優秀的思維可以寫出更漂亮的代碼。
對于 Java8 這讓我想到了之前朋友的吐槽 “蘋果總是做一些以前就有的功能,然后開發布會來夸大其詞,很厲害的樣子” 我覺得 Java 就是這樣子的,一些本應該隨著時代來不斷完善的語法或者新的優化,早應該就出了,結果非得在外界的沖擊下,才做出改變。看更新的速度,很明顯這并不是非常困難的事,這也就誕生了新的語言,世間常態總是如此當現有的工具詬病太多后,就會誕生新的工具,當然 Java 是必不可少的一環。
感謝各位的閱讀!關于“Kotlin接口與Java8新特性接口的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。