问题
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