草庐IT

kotlin-stdlib

全部标签

gradle - Kotlin:测试中的 java.lang.NoSuchMethodError

是否可以在不同的源集中使用Kotlin包函数和包属性?当我尝试这样做时,我抛出了NoSuchMethodError。示例我有一个带有Kotlin代码的Gradle项目和两个源集,main和test。在main中,我在其中一个文件中有以下代码:packageru.ifmo.ctddev.igushkin.dkvs...publicvalpayloadSplitter:String="###"在test我尝试使用以下代码访问payloadSplitter:packageru.ifmo.ctddev.igushkin.dkvs...publicclassMessageTests{...tes

kotlin - 引用 Kotlin 中的 Java 接口(interface)静态字段

我可以从Kotlin引用Java接口(interface)字段吗?我有这个Java接口(interface):publicinterfaceBaseColumns{publicstaticfinalString_ID="_id";publicstaticfinalString_COUNT="_count";}我在Kotlin中实现它:objectUserEntry:BaseColumns{//somecode}当我尝试UserEntry._ID时,我得到Unresolvedreference。如何访问_ID?我错过了什么吗?谢谢! 最佳答案

kotlin - 引用 Kotlin 中的 Java 接口(interface)静态字段

我可以从Kotlin引用Java接口(interface)字段吗?我有这个Java接口(interface):publicinterfaceBaseColumns{publicstaticfinalString_ID="_id";publicstaticfinalString_COUNT="_count";}我在Kotlin中实现它:objectUserEntry:BaseColumns{//somecode}当我尝试UserEntry._ID时,我得到Unresolvedreference。如何访问_ID?我错过了什么吗?谢谢! 最佳答案

kotlin - 如何使用 withDefault 包装器?

我想使用MutableMapwithdefaults:valmyMap=mutableMapOf>().withDefault{mutableSetOf()}但我不能使用getOrImplicitDefault方法因为withDefault返回MutableMap>类型。此外,我无法转换为MutableMapWithDefault接口(interface)因为thisisaprivateinterface.我无法使用get方法,因为它返回一个可为空的类型。没关系,因为这是MutableMap上的方法接口(interface)(而且它不会调用defaultValue回调获取默认值)。似乎

kotlin - 如何使用 withDefault 包装器?

我想使用MutableMapwithdefaults:valmyMap=mutableMapOf>().withDefault{mutableSetOf()}但我不能使用getOrImplicitDefault方法因为withDefault返回MutableMap>类型。此外,我无法转换为MutableMapWithDefault接口(interface)因为thisisaprivateinterface.我无法使用get方法,因为它返回一个可为空的类型。没关系,因为这是MutableMap上的方法接口(interface)(而且它不会调用defaultValue回调获取默认值)。似乎

oop - Kotlin - 是否可以在类中的 init block 之前初始化伴随对象?

是否可以在Kotlin类中的initblock之前初始化companionobject?如果是这样,怎么做?如果没有,有没有办法完成同样的事情。我有以下场景,classA(valiname:String){init{foo.add(this)}companionobjectB{@JvmFieldvalSTATIC=A("hi")@JvmFieldvalfoo=mutableListOf()}funprintAllStatics(){for(ainfoo){print(a.iname)}}}调用printAllStatics会导致空指针异常。 最佳答案

oop - Kotlin - 是否可以在类中的 init block 之前初始化伴随对象?

是否可以在Kotlin类中的initblock之前初始化companionobject?如果是这样,怎么做?如果没有,有没有办法完成同样的事情。我有以下场景,classA(valiname:String){init{foo.add(this)}companionobjectB{@JvmFieldvalSTATIC=A("hi")@JvmFieldvalfoo=mutableListOf()}funprintAllStatics(){for(ainfoo){print(a.iname)}}}调用printAllStatics会导致空指针异常。 最佳答案

json - Moshi + Kotlin + SealedClass

有没有办法使用反序列化jsonsealedclassLayerdataclassShapeLayer(vartype:LayerType):LayerdataclassTextLayer(vartype:LayerType):LayerdataclassImageLayer(vartype:LayerType):LayerLayerType只是一些枚举,可用于区分该对象应具有的类型。我想我可以这样添加适配器:classLayerAdapter{@FromJsonfunfromJson(layerJson:LayerJson):Layer{returnwhen(layerJson.lay

json - Moshi + Kotlin + SealedClass

有没有办法使用反序列化jsonsealedclassLayerdataclassShapeLayer(vartype:LayerType):LayerdataclassTextLayer(vartype:LayerType):LayerdataclassImageLayer(vartype:LayerType):LayerLayerType只是一些枚举,可用于区分该对象应具有的类型。我想我可以这样添加适配器:classLayerAdapter{@FromJsonfunfromJson(layerJson:LayerJson):Layer{returnwhen(layerJson.lay

kotlin - Kotlin 中 Lock.withLock 和 synchronized 的区别

两者之间是否存在差异(除了偏好)someLock.withLock{sharedResource.operation()}和synchronized(someLock){sharedResource.operation()}在Kotlin中? 最佳答案 withLock扩展适用于Lock实例,例如ReentrantLock,而synchronized可用于任何对象。vallock=ReentrantLock()funsyncWithLockTest():Int=lock.withLock{123}valanyLock=Any()fu