我试图理解内联类的概念 - 它们是在运行时内联的单个属性的简单对象包装器。这意味着,类的实际初始化不会在运行时发生
我正在尝试编写简单的测试,它将在 JUnit 测试期间直接显示我的上述解释,如下所示:
companion object {
private const val NAME = "JACK"
}
inline class NameInlineClass(val value: String)
@Test
fun unwrapping() {
val nameInlineClass = NameInlineClass(NAME)
val name = nameInlineClass
assertEquals(name, NAME)
}
不幸的是,这个测试失败了,这让我想到为什么在assertEquals()
实际展开的 String 值没有被比较,而是实际的内联类(应该在运行时展开)?