簡體   English   中英

為什么新的 Android 功能(Proto DataStore)仍然生成 Java 代碼而不是 Kotlin?

[英]Why are new Android features (Proto DataStore) still generating Java code and Not Kotlin?

我在調查

implementation  "androidx.datastore:datastore-core:1.0.0-alpha01"
implementation  "com.google.protobuf:protobuf-javalite:3.10.0"

通過這個代碼實驗室

我不明白為什么關聯的 DataStore 生成的類是 Java

我以為 Google 宣布 Kotlin 已經取代 Java 成為主要的 Android 開發語言?

我的印象是 Kotlin 比 Java 有很多優勢

問題是 proto 緩沖區不支持 Kotlin 嗎?

我可以這么快回答!

根據您共享的 codelab 鏈接,如果您訪問第 6 頁,第一行表示您的答案所依賴的內容:

協議緩沖區是一種用於序列化結構化數據的機制。 您可以一次定義數據的結構方式,然后編譯器生成源代碼以輕松編寫和讀取結構化數據。

因此,基本上在幕后,庫正在使用代碼生成器插件來生成 protobuf 與項目一起工作所需的類。 (是的,您可以將相同的事情與數據綁定聯系起來,您可以在 xml 上編寫代碼,並且在后台生成的類實際上為您實現了該邏輯)

這就是“生成的類在 Java 中”的原因。 它與此上下文中的源無關(Java/Kotlin 對庫的支持) 任何用 Java 編寫的東西都可以在 Kotlin 上無縫運行,反之亦然(考慮 Android 開發環境)

旁注:您還可以將其與注解處理器相關聯,在該處理器中我們根據任何標准的注解實際生成 Java 代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM