有什么方法可以测量Kotlin代码的测试覆盖率吗? Jacoco给出了错误的结果,因为无法确定自动生成的代码。 有没有其他解决方案?
我目前正在开发一个新的Android应用程序使用Kotlin。 我试图实现数据存储的空间,但我没有得到它与科特林代表合作。 我创建了一个Identifier委托,以确保id在初始化后不会被更改。 代表看起来像这样: class Identifier: ReadWriteProperty { private var currentValue = -1L override fun getValue(thisRef: Any?, property: KProperty): Long { if (currentValue == -1L) throw IllegalStateException(“${property.name} is not initialized.”) return currentValue } override fun setValue(thisRef: Any?, property KProperty, value: Long) { if (currentValue != -1L) throw IllegalStateException(“${property.name} can not be changed.”) currentValue = value […]
在Kotlin中是否有一个习惯用法,如果variables不为空,则将其设置为null? 更符合语义的东西比: var test: String? = null if(test != null) test = null
我正在使用Kotlin为Firebase云端function生成Javascript代码。 我想调用update方法,传递一些值作为参数。 在Kotlin中,我必须传递一个Map作为update()的参数: val map = mutableMapOf() //also tried with a Hashmap: same result //generate some values for(i in 0 until 3){ map.put(“key$i”, i) } console.log(map.keys.toList().toString()) //log map keys console.log(map.values.toList().toString()) //log map values ref.child(“values”).update(map) Kotlin生成的JavaScript代码: var LinkedHashMap_init = Kotlin.kotlin.collections.LinkedHashMap_init_q3lmfv$; function main$lambda(event){ var map = LinkedHashMap_init(); for (var i = 0; i < 3; i++) { […]
所以我有这个Java代码: String values = input.nextLine(); String[] longs = values.split(” “); 它将字符串输入分割成一个字符串数组。 我在Kotlin尝试 var input: String? = readLine() var ints: List? = input.split(” “.toRegex()) 我得到一个错误:“在Stringtypes的可为空的接收器上只允许安全(?)或非null断言(!!)调用? 我是Kotlin的新手,想知道如何做到这一点。 谢谢!
我使用kotlin-android-extension,我可以从layout文件调用bottomNavigationView id到kotlin文件。 我可以使用bottomNavigationView.setOnNavigationItemSelectedListener(BottomNavigationView.OnNavigationItemSelectedListener {}) ,但接下来呢? 据我所知在Java中,有另一个名为onNavigationItemSelected函数,但我无法在kotlin中find它。 这是我想在Java中使用的示例代码,但不能写在kotlin中。 bottomNavigationView.setOnNavigationItemSelectedListener( new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.action_favorites: case R.id.action_schedules: case R.id.action_music: } return true; } });
如果我有一个像这样的科林类: data class Anim (val name : String , var age : Int) { constructor (a:Anim):this(a.name, a.age) { } constructor () :this(“Dog”) { } } 我想使用构造函数的参考语法, val a = ::Anim 那么我得到这个错误: overload resolution ambiguity: public constructor PornModel() defined in com.ripple.PornModel public constructor PornModel(a: PornModel) defined in com.ripple.PornModel public constructor PornModel(name: String, country: String = …) […]
我是Kotlin新手。 我想知道这两个之间的区别!! 和? 在下面的代码。 我有以下两个片段首先使用!! 为mCurrentDataset和另一个有? 对于相同的variables。 if(!mCurrentDataset!!.load(mDataSetString.get(mCurrentDataSelectionIndex), STORAGE_TYPE.STORAGE_APPRESOURCE)) { Log.d(“MyActivity”,”Failed to load data.”) return false } if(!mCurrentDataset?.load(mDataSetString.get(mCurrentDataSelectionIndex), STORAGE_TYPE.STORAGE_APPRESOURCE)!!) { Log.d(“MyActivity”,”Failed to load data.”) return false } 提前致谢。
kotlin文件 interface Test { fun test(message: String, delay: Int =100) } class A: Test { override fun test(message: String, delay: Int) { } } 我发现我不能在接口或类中使用@JvmOverloads 。 如果我在接口中添加@JvmOverloads ,错误是@JvmOverloads annotation cannot be used on interface method ,如果我在类中添加@JvmOverloads ,错误是platform declaration clash…. 但是,我似乎能够使用kotlin文件中的默认参数,就像这样。 var a=A() a.test(“1234”) 但是,当我在一个Java文件中使用它,似乎该方法没有超载。 A a=new A(); a.test(“123”);//Compile error 以下版本无界面可以工作 class A { @JvmOverloads fun […]
我试图在我的android代码中使用kotlin生成一个字符串的MD5 .. val md5 = MessageDigest.getInstance(“MD5”) val hash = md5.digest(queryToSign.toByteArray(Charset.defaultCharset())).toString() 但是这给了我: [B @ 118072 有什么想法吗?