Tag: kotlin extension

如何检查kotlin中的“instanceof”类?

在kotlin类中,对于类typesT ,我有作为对象的方法参数(请参见kotlin doc)。 作为对象,我正在调用方法时传递不同的类。 在Java中,我们可以使用对象的instanceof来比较哪个类是类。 所以我想在运行时检查和比较它是哪个类? 我如何检查kotlin中的instanceof类?

布尔扩展函数

当我尝试创建扩展function设置布尔如下真假。 Boolean.setTrue(){ this = true } Boolean.setFalse(){ this = false } 它说预计variables 。 如何实现这一点。

创建Kotlin对象的新实例

我有一个对象QuickSort ,我试图创建2个实例。 当我尝试创建2个单独的实例时,我可以看到它只使用一个实例,因为我在QuickSort类中有一个不准确的计数。 Kotlin在语法上不使用新的,所以我怎么去解决这个问题呢? object QuickSort { var count = 0; quickSortOne(…){ … count++ … } quickSortTwo(…){ … count++ … } } 这里是我如何创建我的2个实例。我的目标是让quickSort1和quickSort2是2个独立的实例。 var quickSort1 = QuickSort quickSort1.quickSortOne(…) var quickSort2 = QuickSort quickSort2.quickSortTwo(…) 尝试解决方案 :将QuickSort从一个对象转换为一个类。 这仍然导致使用相同的实例,如包含第一次调用计数的第二种方法的计数所示。 class QuickSort { var count = 0; quickSortOne(…){ … count++ … } quickSortTwo(…){ … count++ … } } … […]

如何在同一个src文件夹中运行不同的.kt文件/类?

我是kotlin的新手,我开始通过安装intellij IDEA来学习Kotlin语言,现在的问题是当我想通过运行按钮运行第二个.kt文件时,它只显示我运行的第一个.kt文件。 总是显示运行HelloWorld.kt ,我想运行Addition.kt 我不能在kotlin上运行新的crated类,它只显示我在项目中第一次运行的第一个类。

为什么可空数字不保存身份

在kotlin nullable价值观不是保存身份而是平等, val a: Int = 10000 val boxedA: Int? = a val anotherBoxedA: Int? = a print(boxedA === anotherBoxedA) // !!!Prints ‘false’!!! print(boxedA == anotherBoxedA) // Prints ‘true’ 我只是想知道为什么这是不同的?

Kotlin类NoClassDefFoundError崩溃

我有一个现有的Android项目,使用以下库: AutoValue Dagger2 RxJava Retrolambda 我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这是我所做的。 增加了Kotlin依赖。 将其中一个类转换为Kt类并移至src/main/kotlin/..package.. 源集中添加了kotlin。 sourceSets {main.java.srcDirs + =’src / main / kotlin’} 当我做一个干净的生成和部署应用程序,我得到NoClassDefFoundErrorexception。 但是,如果我再次部署它工作得很好。 有什么建议么? 我在课堂上没有任何注释,所以我没有申请kapt插件。 注意:我正在使用最新的kotlin 1.0.4。 我也有即时运行禁用。

Kotlin扩展函数与成员函数?

我知道在Kotlin中使用扩展函数来扩展类的function(例如,来自库或API)。 但是,通过使用扩展function,在代码可读性/结构方面是否有任何优势: class Foo { … } fun Foo.bar() { // Some stuff } 与成员职能相反: class Foo { … fun bar() { // Some stuff } } ? 有推荐的做法吗?

扩展函数不会创建新的Observable对象

我有kotlin和rxjava意想不到的行为。 我使用picasso创建了一个用于加载图像的扩展function fun Picasso.loadBitmap(url: String) : Observable = Observable.create { emitter -> Log.d(“picasso load bitmap”, “me ${this}”) try { val bitmap = load(url).centerCrop() .resize(100, 100) .transform(CircleTransformer()) .get() emitter.onNext(bitmap) emitter.onComplete() } catch (e: IOException) { emitter.onError(e) } } 我在这样的时间间隔(几乎在同一时间)多次调用这个, picasso.loadBitmap(place.image_url) .subscribeOn(Schedulers.io()) .retryWhen { error -> error.zipWith(Observable.range(1, 5), BiFunction { t1, t2 -> RetryWrapper(t2.toLong(), t1) }) .flatMap […]

如何正确使用Kotlin Android的URL

我想用 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val json = URL(“https://my-api-url.com/something”).readText() simpleTextView.setText(json) } 但是这个致命的错误发生 FATAL EXCEPTION: main Process: com.mypackage.randompackage, PID: 812 java.lang.RuntimeException: Unable to start activity ComponentInfo{ ***.MainActivity}: android.os.NetworkOnMainThreadException 我怎样才能简单地从URL链接读取JSON? async函数的包不存在。

在Kotlin编程语言中循环

在我的科特林代码,我得到types不匹配(推断types是INT,但布尔是预期的)错误。 fun main(args: Array) { var i = args.size while (i–){ println(args[i]) } }