![](/img/trans.png)
[英]Is it possible to generate proto datastore classes as Kotlin instead of Java
[英]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.