Kotlin,get 运算符上的NoSuchMethodError

我在我的第三部分库中有这个代码:

class Program { val uniforms = HashMap<String, Int>() operator fun get(s: String) = uniforms[s]!! } 

当我使用[ ]运算符

 glUniformMatrix4fv(uniformColor.uniforms["cameraToClipMatrix"], 1, false, matBuffer) 

我得到这个:

引起:java.lang.NoSuchMethodError:glsl.Program.get(Ljava / lang / String;)I

为什么?

一切似乎都很好

 uniformColor.uniforms.contains["cameraToClipMatrix"] 

返回true,否则返回null

我错过了什么?

kotlin 1.1-rc-91

这看起来像Kotlin编译器中的一个错误。

Java中的Map.getMap.get > Object,而Kotlin则是K-> V.

我怀疑这会导致实现生成fun get(s: String):Any? 并调用网站试图找到fun get(s: String):Int

这是我尝试的例子,它适用于我(即使从Java调用它)在1.1.0-RC-91。 我错过了什么?

 class Program { val uniforms = HashMap<String, Int>() operator fun get(s: String): Int = uniforms[s]!! } fun main(args: Array<String>) { val program = Program() program.uniforms.put("hello", 42) println(program["hello"]) }