在调试android应用程序时遇到问题,似乎给了我一些不合逻辑的数据。
某些背景:我有这些类(请注意,所有这些都是普通类,不是抽象或静态的)
Leaf
将形成树的叶子Tree<T extends Leaf>
将形成一棵树NotUsed extends Leaf
是一个空类,仅用于扩展不需要Leaf的Tree的类。我本可以单独完成A extends Tree
,但是那不是类型安全的。AbstractPropertyExp extends Tree<NotUsed>
:尽管具有此类,但它不是抽象的。Leaf
包含以下内部类:FamilyClass
,LocationClass
,ChangeClass
,QueryClass
和GenerationClass
Tree
包含以下内部类:AddClass
,ChangeClass
,FamilyClass
,GenerationClass
,LocationClass
,QueryClass
,{ {1}},SortingClass
AnalysisClass
包含以下内部类:
AbstractPropertyExp
AddClass extends Tree<NotUsed>.AddClass
ChangeClass extends Tree<NotUsed>.ChangeClass
QueryClass extends Tree<NotUsed>.QueryClass
内部类的原因是因为我想将它们分为可管理的块。它还将FamilyClass extends Tree<NotUsed>.FamilyClass
,.getGenerationalChild()
之类的东西简单地填充到.getDirectChild()
中(Generation是GenerationClass的实例,Family则相反)和.Generation.getChild()
但是,当我调试时,会发生这种情况:
它表示.Family.getChild()
是AbstractPropertyExp.AddClass,而this
是AbstractPropertyExp,而在this.parent
之外,this
是this.parent
。有人知道这是怎么回事吗?