Int :: class.javaPrimitiveType.kotlin引用不等于Int :: class.javaObjectType.kotlin

时间:2017-01-27 06:43:02

标签: kotlin

我认为 CASE 2 也应该返回true。这种行为是否正确?

// CASE 1
Int::class.javaPrimitiveType!!.kotlin == Int::class.javaObjectType.kotlin // true

// CASE 2
Int::class.javaPrimitiveType!!.kotlin === Int::class.javaObjectType.kotlin // false

2 个答案:

答案 0 :(得分:7)

这种行为是正确的。基本类型的KClass个实例和相应的对象类型相等(==),但是它们是从不同的java.lang.Class个实例创建的,因为.java总是返回原始的Class 1}} KClass构造的实例,它们也不可能是相同的(===)。

答案 1 :(得分:0)

简答:是的。

答案很长:当然很难说出应该是的预期行为,因为我们中没有人参与制定决策或编写代码。但是,我不认为这两个对象实际上是同一个对象的要求;平等就足够了,这里不需要引用平等。