我认为 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
答案 0 :(得分:7)
这种行为是正确的。基本类型的KClass
个实例和相应的对象类型相等(==),但是它们是从不同的java.lang.Class
个实例创建的,因为.java
总是返回原始的Class
1}} KClass
构造的实例,它们也不可能是相同的(===)。
答案 1 :(得分:0)
简答:是的。
答案很长:当然很难说出应该是的预期行为,因为我们中没有人参与制定决策或编写代码。但是,我不认为这两个对象实际上是同一个对象的要求;平等就足够了,这里不需要引用平等。