Int :: class.javaPrimitiveType.kotlin引用不等于Int :: class.javaObjectType.kotlin
我认为情况2也应该是真实的。 这种行为是正确的吗?
// CASE 1 Int::class.javaPrimitiveType!!.kotlin == Int::class.javaObjectType.kotlin // true // CASE 2 Int::class.javaPrimitiveType!!.kotlin === Int::class.javaObjectType.kotlin // false
这种行为是正确的。 原始类型的KClass
实例和相应的对象类型是相等的(==),但是它们是从不同的java.lang.Class
实例创建的,因为.java
总是返回KClass
构造的原始Class
实例,他们也可能是相同的(===)。
简短的回答:是的。
漫长的回答:当然,很难说出什么样的行为应该是什么样的,因为我们没有人参与到做出这个决定或者编写这个代码。 不过,我不认为这两个对象其实是同一个对象, 平等就足够了,这里不需要引用平等。