kotlin-extension相关内容
我是 kotlin 的新手,我正在尝试制作对象列表的副本.我遇到的问题是,当我更改新副本中的项目时,旧列表也会更改.这是对象: class ClassA(var title: String?, var list: ArrayList, var selected: Boolean)class ClassB(val id: Int, val name: String) 我试过这样做,但它不起作用:
..
我下面的扩展函数有什么问题 class Foo{有趣的Foo.plus(即:Foo):Foo= 抛出异常()在里面 {Foo() + Foo()//Foo 类型的接收者是必须的}} 更新 我想知道为什么它与常规扩展函数不同,其中 T 成功地被推断为 Any 并希望实现相同的行为,例如.G.T 被推断为 Foo class Foo {有趣的T.foo(that: T): T
..
在 kotlin 类中,我将方法参数作为对象(参见 kotlin doc 此处 ) 用于类类型 T.作为对象,我在调用方法时传递不同的类.在 Java 中,我们可以使用对象的 instanceof 来比较它是哪个类. 所以我想在运行时检查和比较它是哪个类? 如何在 kotlin 中查看 instanceof 类? 解决方案 使用 is. if (myInstance is S
..
我刚刚注意到这个 lint 错误: 调用需要 API 级别 24(当前最小值为 19) java.util.map#foreach 当我在 Kotlin 的 MutableMap 上使用 forEach 扩展函数时.当我写这条线时,这并没有发生,但现在它就在那里.我在另一台机器上没有看到这个错误. 解决方案 你使用的不是kotlin.collections.MutableMap
..
与 anko 一样,您可以编写如下回调函数: 警报{标题 = ""消息 = ""是按钮{吐司(“是")}无按钮{吐司(“不")}} 如何创建这样的嵌套函数?我尝试像下面那样创建它,但似乎不起作用. class 测试 {fun f1(function: () -> Unit) {}fun f2(function: () -> Unit) {}} 现在,如果我将其与扩展功能一起使用, fun
..
我在 Kotlin 的这一部分遇到错误: class GitHubRepoAdapter(私有 val 上下文:上下文,私有 val 值:List) : ArrayAdapter(语境,R.layout.list_item,价值观) 私有val上下文:上下文 在日志中它说: Error:(14, 25) 意外覆盖:以下声明具有相同的 JVM 签名(getContext()Landroi
..
如何迭代HashMapKotlin 中的一个>? typealias HashMap=HashMap(来源) 解决方案 没那么难: for ((key, value) in map) {println("$key = $value")} 或 (更新根据@RuckusT-Boom的和
..
有没有什么奇特的方法可以用 Kotlin Android 实现 debounce 逻辑? 我没有在项目中使用 Rx. Java 中有一种方法,但它对我来说太大了. 解决方案 您可以使用 kotlin 协程 来实现这一点.这是一个例子. 请注意,协程是在 kotlin 1.1+ 上进行实验,可能会在即将推出的 kotlin 版本中进行更改. 更新 自从 Kotl
..
是否可以在Kotlin 的java.lang.Math 类中添加一个新的静态方法?通常,由于 Kotlin 扩展,这些事情在 Kotlin 中是可能的. 我已经尝试在名为 Extensions.kt 的文件中执行以下操作: fun Math.Companion.clamp(value:Double,minValue:Double,maxValue:Double):Double{返回 Mat
..
有人想知道这个吗?在 kotlin 中拆分 SPACE (" ") 不起作用,我尝试使用不同的正则表达式代码,但根本不起作用. 试过这个: value.split("\\s")[0];value.split("\\s+")[0];value.split("\\s++")[0]; 然后我想出了解决方案 -> 创建包含此函数的 java 常量类并将字符串数组返回到您的 kotlin 类.
..
通过使用LiveData的最新版本"androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha03",我使用LiveData的新构件(LiveData +协程(Coroutine),可使用Retrofit执行同步网络调用,并相应地更新ViewModel中的不同标志(isLoading,isError).我在“查询" LiveData上使用Transf
..
我正在尝试Kotlin,并想为Activity实现一个惰性扩展属性: /***活动模块*/val Activity.activityModule:由lazy {ActivityModule(this)} 编译器出现以下错误: 'this'在此上下文中未定义 我怎样才能将此列为“活动"?我已阅读指南,但无法获取. this @ Activity 说引用未解决. 解决方案 Kotl
..
仅学习了DataBinding,发现没有Kotlin强大的内置toString():
..
我创建了一个数据类 data class Something ( val a : String, val b : Object, val c : String ) 稍后在我的程序中,我需要尝试扩展toString方法的该数据类的字符串表示形式. override fun Something.toString() : String = a + b.result
..
我想限制可以调用哪个常量值扩展功能.例如如下功能: @IdRes fun Int.find() = findViewById(this) 如果这是通过真实ID调用的,那很好: R.id.someView.find() // ok 但这会导致编译错误: 42.find() // should be comp
..
我在github 此处. 我的带有构建文件build.gradle.kts文件的协程子项目是 build.gradle.kts的内容是- import org.jetbrains.kotlin.gradle.dsl.Coroutines import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins
..
嘿要获取 T 的类型,但是我不能从实例中获取它,我必须从类参数中获取它,怎么做? abstract class ViewModelFragment{ protected lateinit var mViewModel: T override fun onViewCreated(view: View, savedInstanceState: Bu
..
在输入处,我得到一个多项式作为字符串, 我想获取变量中的系数,但我不知道该怎么做. 例如:7x^4+3x^3-6x^2+x-8.最大度未知,系数是整数. 我将非常感谢您的帮助. 解决方案 用加号和减号(例如,用 re.split ),将结果中的符号保留下来.然后,对于每个子字符串,用"x"除以得到前导系数(+1和-1是特殊情况),并记下x的次幂(即系数0).
..
是否可以创建final类的扩展,例如String?像在 swift 中一样,可以在final class的extension内添加其他方法. 例如-我想在String扩展名中创建一个方法,该方法将告诉我String具有有效的密码长度. val password : String = mEdtPassword!!.getText().toString() // how to def
..
如何使用super关键字在派生类中调用基类的扩展功能? 我尝试使用super打电话,但是它不起作用. open class abc { open fun aa() { println("function in abc") } } fun abc.sum() { println("extension function") } cl
..