Tag: 相等

数据和开放不兼容,我有哪些替代方案?

我正在做一个gli的kotlin端口 ,现在我被卡住了 其实我有以下几点 open class Texture 扩展了几个类,如Texture2d 现在, Texture有相当的一些属性 protected val storage: StorageLinear? protected val target: Target protected val format: Format protected val baseLayer: Int protected val maxLayer: Int protected val baseFace: Int protected val maxFace: Int protected val baseLevel: Int protected val maxLevel: Int protected val swizzles: Swizzles 因此我想把它作为一个data类来利用它所附带的equals() 。 但不幸的是data和open不兼容..(看到这个问题 ) 有一种方法可以解决这个问题,我可以编写我自己的equals()方法,但是这将是样板代码和肮脏的,正是我为什么切换到java的kotlin最大的两个原因 另一种方式,因为所有扩展Texture的class都不会真的添加任何东西,所以它们会起到类似的构建器的作用(看起来类似于Texture2d类 […]

kotlin结构平等检查超类型吗?

我更多地阅读了我的主题,我只是想确保我正确理解这一点。 似乎答案是,我们仍然需要覆盖类上的平等来定义结构相等性检查是什么? 换句话说,如果我们要检查customer1 == customer2那么我们首先必须通过实现equals来定义Customer的结构等同性,那么Kotlin将通过==运算符来使用我们的实现? 所以在这种情况下,如果Customer继承自Person并且我们也希望使用Person属性执行结构相等性检查,那么我们将在equals(Object object)方法中实现这一点?