问题
We have some Map<String, Object> in Java that I would like to make available into a Jython function. I would like to access the contents via
mymap.foo.bar
rather than
mymap['foo']['bar']
Is there a way to wrap the Map in an object so that it has this behavior in Jython? (e.g. like the __getattr__ method in Python, only implemented in Java)
回答1:
I ended up implementing this:
@Override public PyObject __findattr_ex__(String name) {
if (this.containsKey(name))
{
return Py.java2py(this.get(name));
}
else
{
throw Py.AttributeError(name);
}
}
for an object that extends both Map<String, Object> and PyObject.
来源:https://stackoverflow.com/questions/30468876/exposing-a-java-map-in-jython-so-that-its-keys-are-available-with-python-dot