CellCache在TableView中用tornadoFX意外渲染

我只是困惑于与Kotlin的cellCache函数的使用。 渲染总是奇怪而且意想不到,那会发生什么? 代码在这里: data class Person(var name : String, var age : Int, var sex : Boolean) class MyView: View() { val list = listOf( Person(“Name A”, 20, false), Person(“Name B”, 22, false), Person(“Name C”, 21, true), Person(“Name D”, 30, true), Person(“Name E”, 35, true) ).observable() override val root = stackpane { vbox { tableview(items […]

移除Firebase侦听器不适用于Android

我将一个事件值侦听器添加到引用,当我想删除它,但它不起作用。 override fun onStart() { super.onStart() stateListener =dbReference.stateRef.addValueEventListener(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { TODO(“not implemented”) //To change body of created functions use File | Settings | File Templates. } override fun onDataChange(snapshot: DataSnapshot?) { //there is my functions }) } override fun onStop() { super.onStop() dbReference.stateRef.removeEventListener(stateListener) Log.d(“My_TAG”, “$stateListener “) } 这是我添加活动的唯一地方。 编辑后(仍然不工作) […]

迁移到Gradle插件3.0

我将我们的项目迁移到Gradle 3.0插件,我错误的是我是Gradle中的新成员。 现在,我面临这个问题: Error:Could not determine the dependencies of task ‘:ComponentsLib:mergeProdReleaseResources’. > Could not resolve all task dependencies for configuration ‘:ComponentsLib:prodReleaseRuntimeClasspath’. > Could not resolve project :Datastore. Required by: project :ComponentsLib > Project :ComponentsLib declares a dependency from configuration ‘releaseCompile’ to configuration ‘prodRelease’ which is not declared in the descriptor for project :Datastore. 这里是ComponentLib模块的gradle.build: apply […]

为什么这个Kotlin代码仍然需要? 访问成员?

我在Kotlin类中有以下function: private fun raiseResponse(ex: Exception, resObj: JSONObject) { if (_activity == null || _responseHandler == null) return _activity.runOnUiThread { _responseHandler.invoke(ex, resObj) } } 在哪里_activity和_responseHandler被定义为: var _activity: Activity? = null var _responseHandler: ((Exception, JSONObject) -> Unit)? = null 但是,调用runOnUiThread的行只会在我使用?.编译?. 而不是. 。 我试过谷歌搜索,但恐怕我的术语是缺乏的。 我认为我的空检查的第一行raiseResponse足以确保?. 是不必要的?

如何使用ByteArray.getOrElse

我不知道如何指定`ByteArray.getOrElse()函数的默认值。 我试过了: myInt = dat.getOrElse(0, 0).toInt() 但编译器抱怨以下错误: The integer literal does not conform to the expected type (Int) -> Byte 如何指定默认值?

在Kotlin中不能返回tailrec函数的阶乘结果

我在Kotlin练习递归,并决定创建一个阶乘函数 fun fact(x:Int):Int{ tailrec fun factTail(y:Int, z:Int=1) : Int{ if (x == 0) {return z} else if (x == 1) {return z} else { return factTail(y-1, y*z) } } return factTail(x,1) 我只是主要调用这个函数: fun main(args: Array) { println(“5! is ${fact(5)}”) } 我没有得到任何错误,但我也看不出结果。

Kotlin:For-loop范围必须有一个“iterator()”方法

如果我使用var charSet = 1..10它的作品,但是当我使用下面的代码,我得到这个错误。 var charSet = “A”..”Z” for (value in charSet) { println(“$value”) } For-loop范围必须有一个“iterator()”方法。 请让我知道如何解决这个问题。

是否可以为参数函数定义一个默认值?

是否可以将默认函数定义为Kotlin中另一个函数的参数? 我知道,我们可以定义对象的默认值,但不知道如何做参数function。 谢谢。

什么是伴侣对象,为什么我们需要它?

我目前正在学习Kotlin语言。 我想知道什么是伴侣对象,为什么我们需要它? 我认为斯卡拉有一个类似的概念。

如何将实现委托给Kotlin中的一个属性?

Kotlin使我能够通过委托一个主构造器参数来实现一个接口,如下所示: class Foo(xs : ArrayList) : List by xs { } 但是,这展示了支持实施者给用户。 委托给匿名人员似乎也没关系: class Foo() : List by ArrayList() { } 这隐藏了实现细节,但我们无法访问接口提供的function,在这种情况下,这是可变的。 因此,我想将实现委托给一个不在主要构造函数中的属性。 我想要的是类似于 class Foo() : List by xs { val xs : List = ArrayList() } 不编译。 是否有可能在类体中明确定义一个属性,并且仍然能够将实现委托给它?