草庐IT

Kotlin-script

全部标签

java - 使用从 Kotlin 数据类生成的代码时出现 "Incompatible types"错误

如果我反编译dataclassState(valb:List>)生成的.class文件然后我得到以下Java代码:publicfinalclassState{privatefinalListb;publicState(Listb){this.b=b;}publicfinalListgetB(){returnthis.b;}//...}如果我将此java代码复制/粘贴到我的IDE(Intellij15)中,我会在getB()中收到以下编译错误方法:Incompatibletypes.Required:ListFound:List我在这里缺少什么?Kotlin生成的代码如何能够做到这一点,

kotlin - 在 Kotlin 中销毁对象时未使用的参数

解构对象时,是否可以只声明我需要的变量?在这个例子中,我只使用b,我的IDE给我一个警告,提示a未使用。funrun(){funmakePair()=Pair("Apple","Orange")val(a,b)=makePair()println("b=$b")} 最佳答案 从Kotlin1.1开始,您可以使用下划线来标​​记解构声明中未使用的组件:funrun(){funmakePair()=Pair("Apple","Orange")val(_,b)=makePair()println("b=$b")}

kotlin - 在 Kotlin 中销毁对象时未使用的参数

解构对象时,是否可以只声明我需要的变量?在这个例子中,我只使用b,我的IDE给我一个警告,提示a未使用。funrun(){funmakePair()=Pair("Apple","Orange")val(a,b)=makePair()println("b=$b")} 最佳答案 从Kotlin1.1开始,您可以使用下划线来标​​记解构声明中未使用的组件:funrun(){funmakePair()=Pair("Apple","Orange")val(_,b)=makePair()println("b=$b")}

android-studio - 由于 "Could not initialize class com.intellij.ide.highlighter.JavaFileType",Kotlin 应用程序构建失败

我刚刚将AndroidStudio更新到2.2,现在我的Kotlin项目无法构建。gradle同步工作正常,但在尝试构建时,我立即遇到如下错误:Error:Executionfailedfortask':app:compileDebugKotlin'.>Couldnotinitializeclasscom.intellij.ide.highlighter.JavaFileType我检查了我的Kotlin插件是否是最新的。这个错误听起来像是与IDE和突出显示Java代码有关?任何帮助将不胜感激。 最佳答案 打开工具|Kotlin|在主

android-studio - 由于 "Could not initialize class com.intellij.ide.highlighter.JavaFileType",Kotlin 应用程序构建失败

我刚刚将AndroidStudio更新到2.2,现在我的Kotlin项目无法构建。gradle同步工作正常,但在尝试构建时,我立即遇到如下错误:Error:Executionfailedfortask':app:compileDebugKotlin'.>Couldnotinitializeclasscom.intellij.ide.highlighter.JavaFileType我检查了我的Kotlin插件是否是最新的。这个错误听起来像是与IDE和突出显示Java代码有关?任何帮助将不胜感激。 最佳答案 打开工具|Kotlin|在主

Kotlin,针对 Java 互操作 : Idiomatic type for lazy collection?

当面向Java互操作时,惰性集合应该使用什么类型?Sequence对Kotlin调用者最有意义,因为它的扩展函数默认是惰性的,但强制Java调用者处理Kotlin标准库类型并手动转换序列迭代器(序列不扩展可迭代!)Iterable由于for循环中的隐式使用,对Java调用者来说是有意义的,但会导致毫无戒心的Kotlin调用者由于非惰性扩展函数而意外放弃惰性Stream最适合Java和Kotlin调用者,但可能有开销,并且是Java8+(Kotlin目标6+) 最佳答案 您可以通过实现所有这三个来让每个人都开心。例如:dataclas

Kotlin,针对 Java 互操作 : Idiomatic type for lazy collection?

当面向Java互操作时,惰性集合应该使用什么类型?Sequence对Kotlin调用者最有意义,因为它的扩展函数默认是惰性的,但强制Java调用者处理Kotlin标准库类型并手动转换序列迭代器(序列不扩展可迭代!)Iterable由于for循环中的隐式使用,对Java调用者来说是有意义的,但会导致毫无戒心的Kotlin调用者由于非惰性扩展函数而意外放弃惰性Stream最适合Java和Kotlin调用者,但可能有开销,并且是Java8+(Kotlin目标6+) 最佳答案 您可以通过实现所有这三个来让每个人都开心。例如:dataclas

android - @StringRes、@DrawableRes、@LayoutRes 等 android 注解 lint 检查与 kotlin 参数

假设你有这样的带有默认参数的数据类dataclassInfo(@DrawableResvaliconRes:Int=0,@StringResvalstringRes:Int=0,@LayoutResvallayoutRes:Int=0)这样你就可以像这样创建这个数据类valdata=Info(iconRes=R.drawable.icon,stringRes=R.string.text,layoutRes=R.layout.layout)在这种情况下,没有任何lint错误但是当我尝试使用默认参数时,会发生lint错误:valdata=Info(//hereisexpectedresou

android - @StringRes、@DrawableRes、@LayoutRes 等 android 注解 lint 检查与 kotlin 参数

假设你有这样的带有默认参数的数据类dataclassInfo(@DrawableResvaliconRes:Int=0,@StringResvalstringRes:Int=0,@LayoutResvallayoutRes:Int=0)这样你就可以像这样创建这个数据类valdata=Info(iconRes=R.drawable.icon,stringRes=R.string.text,layoutRes=R.layout.layout)在这种情况下,没有任何lint错误但是当我尝试使用默认参数时,会发生lint错误:valdata=Info(//hereisexpectedresou

android - Kotlin 1.2.40 版本上的 Kotlin 房间数据库崩溃

升级到kotlin1.2.40后,我在构建时出现以下错误:e:[kapt]Anexceptionoccurred:java.lang.NoClassDefFoundError:org/jetbrains/kotlin/serialization/jvm/JvmProtoBufUtilatme.eugeniomarletti.kotlin.metadata.KotlinClassMetadata$data$2.invoke(KotlinMetadata.kt:51)atme.eugeniomarletti.kotlin.metadata.KotlinClassMetadata$data$