其中DefaultResolver实现了Resolver借口。
public static void main(String[] args) {
Resolver resolver = new DefaultResolver();
System.out.println("----------------getIndex-------------------");
System.out.println(resolver.getIndex("a"));
System.out.println(resolver.getIndex("a.b"));
System.out.println(resolver.getIndex("a(2)"));
System.out.println(resolver.getIndex("a[2]"));
System.out.println("----------------getIndex-------------------");
System.out.println("----------------getKey-------------------");
System.out.println(resolver.getKey("a"));
System.out.println(resolver.getKey("a.b"));
System.out.println(resolver.getKey("a(2)"));
System.out.println(resolver.getKey("a[2]"));
System.out.println("----------------getKey-------------------");
System.out.println("----------------getProperty-------------------");
System.out.println(resolver.getProperty("a"));
System.out.println(resolver.getProperty("a.b"));
System.out.println(resolver.getProperty("a(2)"));
System.out.println(resolver.getProperty("a[2]"));
System.out.println("----------------getProperty-------------------");
System.out.println("-----------------hasNested------------------");
System.out.println(resolver.hasNested("a"));
System.out.println(resolver.hasNested("a.b"));
System.out.println(resolver.hasNested("a(2)"));
System.out.println(resolver.hasNested("a[2]"));
System.out.println("-----------------hasNested------------------");
System.out.println("-----------------isIndexed------------------");
System.out.println(resolver.isIndexed("a"));
System.out.println(resolver.isIndexed("a.b"));
System.out.println(resolver.isIndexed("a(2)"));
System.out.println(resolver.isIndexed("a[2]"));
System.out.println("-----------------isIndexed------------------");
System.out.println("----------------isMapped-------------------");
System.out.println(resolver.isMapped("a"));
System.out.println(resolver.isMapped("a.b"));
System.out.println(resolver.isMapped("a(2)"));
System.out.println(resolver.isMapped("a[2]"));
System.out.println("----------------isMapped-------------------");
System.out.println("-----------------next------------------");
System.out.println(resolver.next("a"));
System.out.println(resolver.next("a.b"));
System.out.println(resolver.next("a(2)"));
System.out.println(resolver.next("a[2]"));
System.out.println("-----------------next------------------");
System.out.println("----------------remove-------------------");
System.out.println(resolver.remove("a"));
System.out.println(resolver.remove("a.b"));
System.out.println(resolver.remove("a(2)"));
System.out.println(resolver.remove("a[2]"));
System.out.println("----------------remove-------------------");
}
控制台输出:
----------------getIndex-------------------
-1
-1
-1
2
----------------getIndex-------------------
----------------getKey-------------------
null
null
2
null
----------------getKey-------------------
----------------getProperty-------------------
a
a
a
a
----------------getProperty-------------------
-----------------hasNested------------------
false
true
false
false
-----------------hasNested------------------
-----------------isIndexed------------------
false
false
false
true
-----------------isIndexed------------------
----------------isMapped-------------------
false
false
true
false
----------------isMapped-------------------
-----------------next------------------
a
a
a(2)
a[2]
-----------------next------------------
----------------remove-------------------
null
b
null
null
----------------remove-------------------