JXPathを利用してオブジェクトから値を取得。
2007/03/22
java
jxpath
JXPathがおもしろいです。
XPathを使用してオブジェクトグラフにアクセスできます。
簡単なサンプルです。
import java.util.HashMap;
import java.util.Map;
public class A {
private Map map = new HashMap();
private Map my = new HashMap();
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public Map getMy() {
return my;
}
public void setMy(Map my) {
this.my = my;
}
}
JXPathを使用して値を取得するクラスです。
import org.apache.commons.jxpath.JXPathContext;
import a.a.A;
public class TestAccessA {
/**
* @param args
*/
public static void main(String[] args) {
a();
}
public static void a(){
A a = new A();
A a2 = new A();
a2.getMap().put("x", "OK");
a2.getMap().put("x2", "OK o_o");
a.getMap().put("aobj", a2);
a.getMy().put("aobj", a2);
JXPathContext context = JXPathContext.newContext(a);
Object object= context.getValue(
"/my['aobj']//map//x2");
System.out.println(object);
}
}
入りくんだオブジェクトグラフからXPathで値が取得できるのはおもしろいです。
: