Kotlingenericstypes,types推断失败

Kotlin参考文件说这个例子是有效的。 https://kotlinlang.org/docs/reference/generics.html#upper-bounds fun cloneWhenGreater(list: List, threshold: T): List where T : Comparable, T : Cloneable { return list.filter { it > threshold }.map { it.clone() } } 但在Android studio 3.0中,它显示在它下面的细红线it.clone() 。 it.clone() 。 而错误信息是: types推断失败。 期望的types不匹配。 必需: List find: List 为什么这个例子不能被编译?

Kotlin:运行jar时缺少驱动程序的例外

我试图连接基于gradle的kotlin应用程序到mssql数据库(通过模块hikari&hibernate fw)。 当我在IDE(intellij Idea)中运行kotlin应用程序时,一切工作正常,但是当我通过gradlew编译它时,它会抛出exception,它缺少驱动程序,我不知道如何将它嵌入到jar中。 我尝试了谷歌搜索,发现有关将驱动程序添加到jar的类路径的东西,但没有运气。 尝试驱动程序编译组:’net.sourceforge.jtds’,名称:’jtds’,版本:’1.3.1′在依赖关系,但没有运气。 具有数据库处理程序的模块具有build.gradle apply plugin: ‘java’ apply plugin: ‘kotlin’ sourceCompatibility = 1.8 targetCompatibility = 1.8 ext { kotlinVersion = ‘1.1.50’ jUnitVersion = ‘4.12’ jacksonVersion = ‘2.8.6’ networkntVersion = ‘0.1.7’ jsoupVersion = ‘1.10.3’ slf4jVersion = ‘1.7.21’ elasticSearchVersion = ‘5.6.5’ hikariCpVersion = ‘2.6.1’ hibernateVersion = ‘5.2.10.Final’ redisVersion = ‘2.9.0’ mysqlVersion = ‘6.0.6’ jtdsVersion […]

初始化后属性被擦除 – kotlin

我正在使用Kotlin在Android项目中工作。 我有这段代码: val foo = FooClass(this) var colorRunning = FooClass.getProperty(“myproperty”) 和类FooClass是: class FooClass(val context: Context) : SomeHeritance{ private val styles: HashMap = hashMapOf() override fun onCreate(context: Context?) { Log.e(“Hash is empty here”, this.styles.size.toString()) this.styles.put(“a”,”a”) this.styles.put(“b”,”a”) this.styles.put(“c”,”a”) Log.e(“Hash is size is 3”, this.styles.size.toString()) } override fun getProperty(someProp: String) { Log.e(“Hash is size is 0”, this.styles.size.toString()) //I […]

在使用Flowable中的方法引用时,Kotlin无法推断types

我在Java中有这样的代码: Flowable.just(1,2,3) .flatMap(Flowable::just); 和这个代码在Kotlin: Flowable.just(1,2,3) .flatMap(Flowable::just) 虽然Java代码编译得很好,但是Kotlin编译器却说:“错误:(47,30)Kotlin:对类Flowable:一个types参数期望在io.reactivex中定义” 但是这编译罚款: Flowable.just(1,2,3) .flatMap { Flowable.just(it) } 我在做什么错误或Kotlin如何自动推断Flowable的types?

这个引用在kotlin扩展属性的lazy初始值设定中

我正在尝试Kotlin,并希望为Activity实现一个惰性扩展属性: /** * Activity module */ val Activity.activityModule: ActivityModule by lazy { ActivityModule(this) } 编译器错误与: ‘this’ is not defined in this context 我如何能够将此作为“活动”? 我已阅读指南,但无法得到它。 this@Activity说参考是未解决的。

使用数据类genericstypes的kotlin

您好,我已经通过kotlin文件,并没有发现任何东西。 我想要做的是有一个通用的thar必须是一个数据类,类似 data class MyData(val pop1:Long,val pop2:String,…) fun class MyGenericClass(o : T){ // This is the important part fun useCopy(value : Long) = t.copy(pop1 = value) } 我真正需要实现的是能够以通用的方式使用数据类的复制function(pop1将永远是我的数据类的成员) 提前致谢

转换Android项目与数据绑定从Java到Kotlin

我有一个用Java编写的大型Android项目,目前正在将其转换为Kotlin。 我的许多活动和片段都使用数据绑定。 最初,当我使用数据绑定将我的第一个活动转换为Kotlin时,该项目无法为此活动构建。 该错误表示缺少对数据绑定库的引用。 我补充说: kapt ‘com.android.databinding:compiler:2.0.0-beta6’ 到app/build.gradle依赖关系 kapt { generateStubs = true } 到相同的文件。 建立之后,数据绑定的Kotlin活动起作用,而所有其余的Java数据绑定活动现在都报告数据绑定包引用不存在。 这让我陷入困境。 我正计划将活动和片段一个一个地转换成Kotlin,并且随着时间的推移构建它们,但是现在看起来不可行,因为我必须在Java或Kotlin之间进行选择。 我发现Kotterknife: https : //github.com/JakeWharton/kotterknife ,这是一个Kotlin视图注入库,但我仍然不能相信,没有办法慢慢地把你的活动从Java转换到Kotlin,即使他们使用数据绑定。 这对我来说根本不可信。 有没有人在过去以这样的方式转换了一个项目,并且成功了,而不必做出选择呢? 有没有一种方法可以将单个活动转换成一个整体? 另一个选择是一次性将所有Java转换成Kotlin,然后在完成所有工作后进行一次单独构建,但是如果将所有工作放在一起,然后意识到自己忽略了某些东西,看起来有点冒险。 有任何想法吗? 提前致谢。

Kotlin数据类和可空types

我是Kotlin的新手,我不知道为什么编译器会抱怨这个代码: data class Test(var data : String = “data”) fun test(){ var test: Test? = Test(“”) var size = test?.data.length } 编译器抱怨test?.data.length ,它说我应该做的: test?.data?.length 。 但数据variables是String ,而不是String? ,所以我不明白为什么我要把? 当我想检查长度。

Kotlin:二级构造函数参数中的“val”是不允许的

我有以下课程: class Person(val name: String) { private var surname: String = “Unknown” constructor(name: String, surname: String) : this(name) { this.surname = surname } } 但是,当我想要在第二个构造函数中具有不变的名称参数时: constructor(val name: String, surname: String) : this(name) { this.surname = surname } 我有以下编译时错误: Kotlin:二级构造函数参数中的“val”是不允许的 有人可以解释为什么Kotlin编译器不允许这样做?

Kotlin:从Firebase获取数据

我正在努力寻找一种从我的Firebase数据库中获取单个值的有效方法。 我来自与Swift合作。 当使用Swift从Firebase获取数据时,就像创建一个字典并通过它访问数据一样简单,这使得我可以访问这个值来做一些事情。 例如 guard let dictionary = snapshot.value as? [String: AnyObject] else { return } let username = dictionary[“username”] as? String if username == “Bob” { // do something } 我只能在网上find使用循环来循环Kotlin快照的文档和答案。 有没有一个高效的方法来做到这一点? 这里是我可以在网上find的。 这里有一个片段,让你开始。 对此,我真的非常感激。 mReference.getReference(“users”).addListenerForSingleValueEvent(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { TODO(“not implemented”) } override fun onDataChange(snapshot: DataSnapshot?) { val children […]