相关疑难解决方法(0)

Kotlin Bytecode - 如何在IntelliJ IDEA中进行分析?

我想看看编译后的字节码,这样我就可以了解它在封面下的工作原理.我正在使用IntelliJ IDEA 15,但找不到查看字节码的方法.我错过了什么?

intellij-idea kotlin android-studio jvm-bytecode

59
推荐指数
2
解决办法
7169
查看次数

如何在Kotlin中比较Short和Int?

我有一个Short变量,我需要检查的值.但编译器抱怨说Operator '==' cannot be applied to 'Short' and 'Int'当我做一个简单的等于检查时:

val myShort: Short = 4
if (myShort == 4) // <-- ERROR
    println("all is well")
Run Code Online (Sandbox Code Playgroud)

那么最简单,"最干净"的方法是什么等于检查?

以下是我尝试过的一些事情(说实话,我都不喜欢).

第一个将4整数转换为short(看起来很奇怪,在原始数字上调用一个函数)

val myShort: Short = 4
if (myShort == 4.toShort())
    println("all is well")
Run Code Online (Sandbox Code Playgroud)

下一个将短路转换为int(不应该是必要的,现在我有两个整数,当我不需要任何时候)

val myShort: Short = 4
if (myShort.toInt() == 4)
    println("all is well")
Run Code Online (Sandbox Code Playgroud)

kotlin

2
推荐指数
1
解决办法
1354
查看次数

Kotlin 值与赋值中的引用

我需要让一个班级引用另一个班级。不是创建它的副本,而是对已经存在的实例进行实际引用。

我也许可以用一个例子更好地解释它。我们有没有课Image

class Image(imgPath: String) {
    val height   : Int
    val width    : Int
    val rgbMatrix: MutableList< MutableList< Triple<Int, Int, Int> > >

    /* ... etc. ... */
}
Run Code Online (Sandbox Code Playgroud)

现在说我想要一个ImageManager只引用一个已经存在的类Image

class ImageManager(val img: Image) {
   /* ... */
}
Run Code Online (Sandbox Code Playgroud)

所以我可以有这种行为:

val image = Image("/res/images/image.png")

val imageManager = ImageManager(image)

// Setting the pixel at (125, 25) to black
imageManager.img.rgbMatrix[125, 25] = Triple(0, 0, 0)

// Should print the update value(0, 0, 0)
print( image.rgbMatrix[125, 25] …
Run Code Online (Sandbox Code Playgroud)

oop reference class object kotlin

2
推荐指数
1
解决办法
4908
查看次数