java - 在 Jython 中公开 Java Map<>,以便其键可通过 Python "dot"运算符使用(属性访问)

标签 java python jython

我们有一些Map<String, Object>在 Java 中,我想将其提供给 Jython 函数。我想通过访问内容

mymap.foo.bar

而不是

mymap['foo']['bar']

有没有办法包装 Map以便它在 Jython 中具有这种行为? (例如Python中的__getattr__方法,仅在Java中实现)

最佳答案

我最终实现了这个:

@Override public PyObject __findattr_ex__(String name) {
    if (this.containsKey(name))
    {
        return Py.java2py(this.get(name));
    }
    else
    {
        throw Py.AttributeError(name);
    }
}    

对于同时扩展 Map<String, Object> 的对象和PyObject .

关于java - 在 Jython 中公开 Java Map<>,以便其键可通过 Python "dot"运算符使用(属性访问),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468876/

相关文章:

python - numpy.any() 返回 True 但 "is True"比较失败

python - 将 NumPy 与 JyNI 结合使用

python - 我是否需要锁定来保护我的代码中的多线程竞争条件

java - Tomcat 意外关闭

java - 如何将 SQL 结果集输出限制为 1 个结果而不是每个查询结果?

python - 如何在 python 中使用 cron 和 smtp 安排在特定时间发送电子邮件?

jython - 将 pytest 与 Jython 一起使用

java - 为什么 Firebase 中的数据没有显示在我的 TextView 中?

java - 如何正确写入 MifareUltralight NFC 标签?

python - Keras 的 model.predict 可以返回字典吗?