public interface Hierarchical extends Comparable<Hierarchical>
描述以一个参照物为对象,存在于该参照物的层级结构中的对象。
该对象可通过getVerticalDistance()
与getHorizontalDistance()
描述其在以参照物为基点的坐标坐标系中的位置。
在需要对该接口的实现类进行按优先级排序时,距离getRoot()
对象越近,则该实现类的优先级越高。
默认提供了DEFAULT_HIERARCHICAL_COMPARATOR
用于实现该比较规则。
一般情况下,getRoot()
返回值相同的对象之间的比较才有意义。
此外,还提供了Hierarchical.Selector
接口用于根据一定的规则从两个Hierarchical
实现类中选择并返回一个最合适的对象,
默认提供了四个实现类:
Hierarchical.Selector.NEAREST_AND_OLDEST_PRIORITY
: 返回距离根对象更近的对象,当距离一样时优先返回旧对象;Hierarchical.Selector.NEAREST_AND_NEWEST_PRIORITY
: 返回距离根对象更近的对象,当距离一样时优先返回新对象;Hierarchical.Selector.FARTHEST_AND_OLDEST_PRIORITY
: 返回距离根对象更远的对象,当距离一样时优先返回旧对象;Hierarchical.Selector.FARTHEST_AND_NEWEST_PRIORITY
: 返回距离根对象更远的对象,当距离一样时优先返回新对象;Modifier and Type | Interface and Description |
---|---|
static interface |
Hierarchical.Selector
Hierarchical 选择器,用于根据一定的规则从两个Hierarchical 实现类中选择并返回一个最合适的对象 |
Modifier and Type | Field and Description |
---|---|
static Comparator<Hierarchical> |
DEFAULT_HIERARCHICAL_COMPARATOR
|
Modifier and Type | Method and Description |
---|---|
default int |
compareTo(Hierarchical o)
|
int |
getHorizontalDistance()
获取该对象与参照物的水平距离。
|
Object |
getRoot()
参照物,即坐标为
(0, 0) 的对象。 |
int |
getVerticalDistance()
获取该对象与参照物的垂直距离。
|
static final Comparator<Hierarchical> DEFAULT_HIERARCHICAL_COMPARATOR
default int compareTo(Hierarchical o)
compareTo
in interface Comparable<Hierarchical>
o
- SynthesizedAnnotation
对象Object getRoot()
(0, 0)
的对象。
当对象本身即为参照物时,该方法应当返回其本身int getVerticalDistance()
int getHorizontalDistance()
getVerticalDistance()
相同的情况下条,
该对象被扫描到的顺序。Copyright © 2024. All rights reserved.