Tag: 动态语言

在Android中使用动态语言开始编程((J)Ruby,Clojure ……)

我一直在环顾四周,似乎无法找到任何明确的答案或进展似乎是“最新的”。 我见过一些有趣的项目,比如Mirah(以前的Duby),我正在研究它。 我见过JRuby用于将ruby编译成.dex的失败。 我也一直在寻找Clojure,并意识到他们可能都与同一件事有关。 有没有人有关于如何开始并取得进展的任何提示? 我不仅要问哪些框架可以提供帮助,更重要的是,我还要提出一个指导我的努力的理念/方向,以便开始。

用Java模拟鸭子打字

问题:我希望能够在Java中一般性地访问Java ojbect上的任何属性/字段,类似于动态语言(想想Groovy,JavaScript)的方式。 我不知道当时我正在编写这个管道代码它是什么类型的对象或属性/字段名称是什么。 但是当我去使用它时我会知道属性/字段名称。 我目前的解决方案:到目前为止,我已经编写了一个简单的包装类,它使用java.beans.Introspector来获取Bean / POJO的属性并将它们公开为Map 。 它很粗糙但适用于简单的情况。 我的问题是除了reflection/转换为Map之外还有哪些方法可以解决这个问题? 在我走得太远之前,我想知道是否有人知道我如何能够从Rhino或javax.script.*蚕食一些东西javax.script.*这个概念已经过深思熟虑。 或者也许是一种我没有考虑过的完全不同的方法。 编辑:是的我熟悉reflection(我相信Introspector无论如何都在使用它)。 如果有任何其他经过深思熟虑的解决方案,我只是好奇。 编辑2:似乎最流行的答案涉及1)直接或通过辅助类进行reflection,和/或2)映射到实现所需类成员的接口。 关于利用Groovy的评论,我真的很感兴趣。 由于Groovy具有真正的duck-typing并且它是一种JVM语言,有没有办法在Groovy中创建一个简单的帮助器并从Java调用它? 这将非常酷,可能更灵活,性能更好。 答:我认为迈克的答案是最好的,因为它是一个最接近的完整概念。 对于这种特殊情况,我可能不会采用这种方式,但它肯定是一种有用的方法。 任何看过这个的人都应该确保在这里阅读对话,因为那里有很多有用的信息。 谢谢!