接口generics过载

我可以在C#中执行以下操作。 是否有可能做同样的kotlin或java? public interface IFactory { TOutModel Create(TModel model1); } public interface IFactory { TOutModel Create(TModel1 model1, TModel2 model2); }

为什么var foo = null编译

我从Kotlin开始尝试了解一些事情。 var foo: String = null不按预期方式编译。 var foo: String? = null var foo: String? = null应该是正确的语法并按预期进行编译。 那么为什么var foo = null编译?

var name:String有什么区别? 和var name:String

我是Kotlin Programming lang的新手。 我一直在android开发应用程序。 我发现一个数据类采用String?构造函数String? 和String任何人都可以让我明白这一点。 data class Person(var name: String?) { //… } data class Person(var name: String) { //… }

Java或Scala中Kotlin的types实现是不可能实现的?

我最熟悉的Javatypes擦除(及其所有的问题和好处)。 我对Kotlintypes系统的扩展可能性有一些限制,但是我不清楚types实例是如何在面向擦除的JVM上工作的。 什么是types实现,Kotlin如何在JVM上实现,这与Java的types擦除和Scala的复杂types系统有何不同?

无法使用Android Gradle插件3.0.1解决assembleAndroidTest任务的依赖关系

我正在更新我们的项目使用Gradle 4.1和Android Gradle插件3.0.1。 我已经更新我们的依赖配置到新的配置和项目成功编译。 但是,在编译android测试( assembleAndroidTest Gradle任务)时,有很多未解决的依赖关系(包括Kotlin标准库的顶级函数)。 我怀疑Proguard可能会导致这种情况(虽然它没有更新Gradle),但是即使增加明确的规则来保留符号/类也没有帮助。 我们使用Kotlin 1.2.10和Kotlin-Kapt插件。 我感谢任何帮助。

如何设置Kotlin的财产价值

我试图设置一个属性值,如下面的代码片段。这个问题没有回答这个问题。 var person = Person(“john”, 24) //sample_text.text = person.getName() + person.getAge() var kon = person.someProperty person.someProperty = “crap” //this doesn’t allow me to set value kon = “manulilated” //this allows me to set the value sample_text.text = kon class Person(val n: String, val a: Int){ var pname: String = n var page: Int = a […]

使用Gradle在Kotlin服务器和客户端项目之间共享代码

我想使用一个单独的shared项目来共享服务器(JVM)和客户端(JS)之间的一些代码。 我见过使用Maven的解决方案 ,但我不知道如何将其转换为Gradle项目。 另外, 官方指南中没有任何共享项目的例子。 那么,如何使用这样的设置最小的build.gradle ?

什么! 意味着一个Kotlin返回值?

我正在尝试使用具有Location!types的Task result Location! 。 这是什么意思,我怎么处理可空性? 它可能是空的或不? 我在kotlinlang.org的Null安全部分找不到这种声明。

有没有办法在Kotlin中扩展一个函数?

我将最好用代码解释场景。 object Helper{ fun getValuesForBlah1(constParam1 : Boolean, constParam2 : String, constParam3 : Float, varParam : Int) fun getValuesForBlah2(constParam1 : Boolean, constParam2 : String, constParam3 : Float, varParam : SomeClass) fun getValuesForBlah3(constParam1 : Boolean, constParam2 : String, constParam3 : Float, varParam : SomeOtherClass) … …. } 如果你看看所有的function,那么所有的function都有一套共同的参数和可变参数。 有没有办法把抽象出的常用参数抽象出来,以便我不必在所有函数中重复它们? 编辑 @Google已经在下面给出了一个很好的答案。 但是我正在寻找一种可以使用某种语言function来解决的方法。 例如在斯卡拉它可以用隐式解决(我不知道,虽然)?

如何在Kotlin中实现Interface的通用function?

有一个来自shiro的接口CacheManager.java。 package org.apache.shiro.cache; public interface CacheManager { Cache getCache(String var1) throws CacheException; } 我写了一个实现CacheManager的类DefaultCacheManager.kt。 open class DefaultCacheManager : CacheManager { @Throws(CacheException::class) override fun getCache(name: String): Cache { return InnerCache(name) } } class InnerCache(var name: String) : Cache { //…. omitted …. } 上面的代码会导致编译错误。 Conflicting overloads: @Throws public open fun getCache(name: String): Cache defined in com.yootai.oms.permission.DefaultCacheManager, […]