草庐IT

kotlin-stdlib

全部标签

带有泛型的 Kotlin 构造函数引用

我在(Rx)Java中有这段代码:Observable.fromArray(1,2,3).flatMap(this::intToBooleanObservable,Pair::new).....我希望对应的Kotlin代码看起来像:Observable.fromArray(1,2,3).flatMap(::intToBooleanObservable,::Pair).....但是编译器无法推断Pair的泛型类型,所以我现在能做的最好的事情是:.flatMap(::intToBooleanObservable,{a,b->atob})这并不像我希望的那样简洁。有没有办法在不声明变量a和b

kotlin - 是否可以在 Kotlin 中创建递归函数类型?

我有代表流程中步骤的函数。每个函数也知道下一步,如果有的话。我希望能够做类似的事情:funfooStep():Step?{...dosomething...return::barStep//thenextstepisbarStep}这些函数是从一个中央调度函数调用的,其中包含的代码有点像这样:varstep=startStepwhile(step!=null){step=step()}请注意,特定步骤中的逻辑也决定了下一步,如果有的话。我想我可以将Step定义为:typealiasStep=()->Step?所以Step是一个返回另一个Step或null的函数。但是,这无法编译:Kot

kotlin - 是否可以在 Kotlin 中创建递归函数类型?

我有代表流程中步骤的函数。每个函数也知道下一步,如果有的话。我希望能够做类似的事情:funfooStep():Step?{...dosomething...return::barStep//thenextstepisbarStep}这些函数是从一个中央调度函数调用的,其中包含的代码有点像这样:varstep=startStepwhile(step!=null){step=step()}请注意,特定步骤中的逻辑也决定了下一步,如果有的话。我想我可以将Step定义为:typealiasStep=()->Step?所以Step是一个返回另一个Step或null的函数。但是,这无法编译:Kot

kotlin - 静态导入 Kotlin Companion 方法?

tl:博士;是否可以import另一个类的伴生对象内的方法,无需使用Companion限定导入?也就是说,假设toFoo是一种方法,我是否可以说importBar.toFoo而不是importBar.Companion.toFoo在Bar的伴生对象上?我们正在将一个类从Java迁移到Kotlin。我们的类看起来像这样:classBar{staticFootoFoo(){returnnewFoo();}}然后,为了使用它,从一个恰好是Kotlin的类中,我们可以这样说:importBar.toFoo;//...Bar().convert(toFoo());//likeaJava8Coll

kotlin - 静态导入 Kotlin Companion 方法?

tl:博士;是否可以import另一个类的伴生对象内的方法,无需使用Companion限定导入?也就是说,假设toFoo是一种方法,我是否可以说importBar.toFoo而不是importBar.Companion.toFoo在Bar的伴生对象上?我们正在将一个类从Java迁移到Kotlin。我们的类看起来像这样:classBar{staticFootoFoo(){returnnewFoo();}}然后,为了使用它,从一个恰好是Kotlin的类中,我们可以这样说:importBar.toFoo;//...Bar().convert(toFoo());//likeaJava8Coll

jpa - Kotlin数据类继承+拷贝方法

我从个人经验和thisdiscussion都了解当dataclass从另一个类继承时,该继承类的字段不包含在数据类的copy函数中。我对解决此问题的选项很感兴趣。具体来说,我有一个JPA@MappedSuperClass用于我的JPA实体,它们是dataclasses。在父类(superclass)中,我设置了实体ID,(至少到目前为止)我总是想这样做。我可能还想做一些其他的事情,比如设置创建日期、上次更新日期等。到目前为止我考虑过的选项:将ID、创建日期等复制粘贴到每个实体中。优点:它很简单,并且复制方法有效。缺点:DRY失败,您无法使用共享父类(superclass)处理所有实体。

jpa - Kotlin数据类继承+拷贝方法

我从个人经验和thisdiscussion都了解当dataclass从另一个类继承时,该继承类的字段不包含在数据类的copy函数中。我对解决此问题的选项很感兴趣。具体来说,我有一个JPA@MappedSuperClass用于我的JPA实体,它们是dataclasses。在父类(superclass)中,我设置了实体ID,(至少到目前为止)我总是想这样做。我可能还想做一些其他的事情,比如设置创建日期、上次更新日期等。到目前为止我考虑过的选项:将ID、创建日期等复制粘贴到每个实体中。优点:它很简单,并且复制方法有效。缺点:DRY失败,您无法使用共享父类(superclass)处理所有实体。

kotlin - 如何将 Kotlin 代码引用从函数更改为 intellij 插件中的字段?

我正在编写一个intellij插件,我正在重构一个类,将它的getter(例如,funname():String)更改为字段(例如,valname:String)。但是,我不知道如何最好地更新相应的PsiReference实例。Kotlin调用者需要在不带括号的情况下从myObj.name()更改为myObj.name。目前,我正在做以下事情:ReferencesSearch.search(function).findAll().forEach{valnextSibling=it.element.nextSiblingif((nextSiblingas?KtValueArgumentL

kotlin - 如何将 Kotlin 代码引用从函数更改为 intellij 插件中的字段?

我正在编写一个intellij插件,我正在重构一个类,将它的getter(例如,funname():String)更改为字段(例如,valname:String)。但是,我不知道如何最好地更新相应的PsiReference实例。Kotlin调用者需要在不带括号的情况下从myObj.name()更改为myObj.name。目前,我正在做以下事情:ReferencesSearch.search(function).findAll().forEach{valnextSibling=it.element.nextSiblingif((nextSiblingas?KtValueArgumentL

android - 将 Android 项目转换为使用 Gradle Script Kotlin

我想使用GradleScriptKotlin将我的Android项目中的build.gradle文件从Groovy转换为Kotlin.最好我喜欢Kotlin中的所有这些,但如果有一些限制,那么尽可能多。假设我只有一个空项目,它是从AndroidStudio“新应用程序”模板(minSdkVersion15,如果重要的话,使用AppCompat)新创建的。我需要采取哪些步骤才能将此类项目转换为GradleScriptKotlin。我希望这对我(以及其他所有人)来说是一个很好的起点,我可以自己处理转换任何自定义逻辑。 最佳答案 已经有一