Tag: fastutil

LibGDX:其他库不工作?

我为我的游戏使用LibGDX,我试图使用FastUtil的Int2BooleanArrayMap来存储我的密钥状态(上/下)。 不幸的是我得到这个奇怪的错误: Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchMethodError: it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap.put(IZ)Ljava/lang/Boolean; at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131) Caused by: java.lang.NoSuchMethodError: it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap.put(IZ)Ljava/lang/Boolean; at com.acelta.Input.keyDown(Input.kt:12) at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:312) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:215) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) 该代码对于我的输入处理器非常简单: package org.jire.wot import com.badlogic.gdx.InputAdapter import it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap import org.jire.wot.App.camera object Input : InputAdapter() { private val map = Int2BooleanArrayMap() override fun keyDown(keycode: Int): Boolean { map.put(keycode, true) return true } override […]

为什么Java方法的Integer参数映射到Int而不是平台类型?

受另一个问题的启发。 在fastutil库中有IntArrayList类,它有一个具有以下Java签名的方法: public void push(Integer o) 从Kotlin被视为 push(o: Int) 有一个特定的原因,为什么它是Int而不是平台类型Int! ? 我期望它是push(o: Int!) ,至少是因为在Java源代码中使用Kotlin源代码定义的具有相同签名的方法具有Int! 作为从Kotlin中看到的参数类型(甚至在不同模块中定义,甚至从该模块的jar中导入)。 此外,所描述的行为导致push(Integer o)与具有Int参数合法的push(int o) (在同一个类中)冲突 – 它们都被视为push(o: Int) 。 如果有Int! Integer ,不会有冲突(我也试着在我的代码中定义这一对方法 – 仍然工作,因为我期望,有Int! )。 Kotlin版本是1.0.2 。 fastutil Gradle依赖: compile group: 'it.unimi.dsi', name: 'fastutil', version: '7.0.12'