Scala等同于Range的方式来自定义类

最近看Kotlin,你可以做..或者一些自定义类而不是Int或其他类。 Kotlin通过如下扩展函数来实现: operator fun <T: Comparable> T.rangeTo(that: T): ClosedRange这意味着只要你的类实现了Comparable接口,你可以免费得到它你可以这样做: val now = LocalDate.now() val vacation = now..now.plusDays(10) 我发现这很方便。 只是想知道我们怎么能在Scala中做到这一点,我知道我们应该通过types类来实现它吗? 也许是对还是错。 任何人都可以向我展示在Scala中最简单的方法吗? 看起来好像没有内置的LocalDate

java.lang.Integer不能转换为Kotlin中的java.lang.Long(当初始值为null时)

如果我有以下,它的作品(即数字分配1000) fun main(args: Array) { var number: Long ? = null // or number = 0 val simpleObject = SimpleClass() number = 1000 println(“Hi + $number”) } 如果我有以下,它的作品(即数字分配1000) import java.util.* fun main(args: Array) { var number: Long = 0 val simpleObject = SimpleClass() number = simpleObject.getValue() println(“Hi + $number”) } class SimpleClass() { fun getValue(): […]

如何修复使用RxLifecycle.bindToLifecycle()转换的Completable中的types推断错误?

我正在使用Kotlin和RxJava2。 它在其他types,即Observable等工作正常,但是当我使用一个Completabletypes时,它给了我一个types推理的错误: type inference failed: Not enough information to infer parameter T in fun bindToLifecycle(): LifecycleTransformer Please specify it explicitly 这是我正在使用的代码: viewModel .updateText(returnedText) // the completable method .compose(activity.bindToLifecycle())

一个variables不能赋值为2

我是新来写kotlin。 我遇到一个错误,我不知道如何解决它。 这是代码的一部分: for (j in 0..m – 1) { var b0 = a[j] var tt = j var b1: Int for (i in 0..n / m – 1) { tt = (tt + k) % n b1 = a[tt] a[tt] = b0 if (b1 == 2) b0 = 2 else b0 = b1 } […]

如何实例化一个新的genericstypes的实例

在C#中,您可以对generics创建一个新的约束来创建一个generics参数types的新实例,在Kotlin中是否有相同的方法? 现在我的工作是这样的: fun someMethod(class : () -> T) { val newInstance = class() } 我正在像这样调用someMethod() someMethod(::MyClass) 但我想要做这样的事情: fun someMethod() { val newInstance = T() } 那可能吗?

有一个kotlintest项目的样本结构

我目前正在玩Kotlin测试框架https://github.com/kotlintest/kotlintest 。 我想知道是否有一个预期的方式来组织项目,我的意思是,像一个基础项目,我可以开始立足。

如何使用自定义的类对象在android中的onCreate()中使用正确实现lateinit避免“属性获取或设置器预期”错误

我正在尝试使用Kotlin实现Dialogflow(之前的api.ai)代理与我的Android应用程序的集成。 我检查了关于kotlin lateinit其他问答,Android中的onCreate()生命周期是晚期init实现的理想选择,以避免用空对象编写脏代码和相应的!! 和? 访问Kotlin。 但是在尝试lateinint自定义类的实例时,我lateinint了“ Property getter or setter expected ”的错误。 这里是代码: class AIApplication : Application() { private var activitiesCount: Int = 0 var lateinit settingsManager: SettingsManager //private set private val isInForeground: Boolean get() = activitiesCount > 0 override fun onCreate() { super.onCreate() settingsManager = SettingsManager(this) } 这给了我在lateinit settingsManager行的’ Property getter或setter expected ‘的lateinit settingsManager […]

如何设置android应用程序的自定义字体?

我似乎无法将标准的android字体更改为我的应用程序中的另一个。 我正在Kotlin写我的应用程序,我正在使用Anko进行布局。 我试过了: typeface = Typeface.create() typeface = Typface.createFromAsset(assets, “font/font_name”) setTypeface(Typeface.createFromAsset(assets, “font/font_name”)) 谢谢您的帮助。

智能投射不可能,因为实例是可变属性

我试图在Kotlin中创建一个单例,并且遇到问题,因为我得到了一个smart cast to PresenterManager is impossible because instance is mutable property that could have been changed at this time 。 这似乎是一个非常标准的方式来做一个单身人士。 为什么不让我,我怎么能解决它? PresenterManager { //some code …. companion object { private val PRESENTER_ID = “presenter_id” private var instance: PresenterManager? = null fun getManager(): PresenterManager { if (instance == null) { instance = PresenterManager(10, 30, TimeUnit.SECONDS) […]

如何获得.kt文件中的所有类的列表

是否有可能获取.kt文件中的类的列表? 看来,KDeclarationContainer是我正在寻找的类,但我不确定如何使用它。 编辑:我正在使用Kotlinreflection。