【发布时间】:2015-03-19 05:16:19
【问题描述】:
我如何知道内部类的两个对象是否具有相同的运行时类型? 在下面的示例中,我希望看到 aa.getClass == a.Inner 和 ba.getClass == b.Inner 的类,但实际上它们都是 Outer.Inner 和相等的。
class Outer{
class Inner{}
}
val a = new Outer
val b = new Outer
val aa = new a.Inner
val ab = new a.Inner
val ba = new b.Inner
val res1 = aa.getClass == ba.getClass
val res2 = aa.isInstanceOf[ab.type ]
scala> | | defined class Outer
scala> a: Outer = Outer@550a1967
scala> b: Outer = Outer@5f9678e1
scala> aa: a.Inner = Outer$Inner@70a36a66
scala> ab: a.Inner = Outer$Inner@1dd6d4b7
scala> ba: b.Inner = Outer$Inner@2e61d218
scala> res1: Boolean = true
scala> res2: Boolean = false
【问题讨论】:
标签: scala