【问题标题】:Meta-properties with groovy?带有groovy的元属性?
【发布时间】:2011-06-17 04:50:35
【问题描述】:

在 python(特别是 CherryPy)中,我可以做类似的事情

class Root(Object):

  def index():
   #some sort of logic here

  index.expose = True

Groovy 有类似的东西吗?

更新

CherryPy 使用普通对象,因为它相当于控制器,开发人员在控制器中装饰或标记每个应该暴露给 URL 路由系统的方法。在上面的例子中(带有一些额外的配置), .expose 属性告诉框架索引应该可以被请求路由系统访问。 特别是针对我的问题,我正在尝试编写一个数据字典,将缩写键、值对从 vCard 文件中推送到一个简单的类中。所以理想情况下是这样的

 class Foo {
    @Key("FN")
    def fullName
 }

vCard 解析器将创建一个新的 foo 实例,然后为 FullName 类属性分配“FN”的内容。

【问题讨论】:

  • 大多数读者可能不熟悉 CherryPy,因此如果您只描述您想要实现的目标,您更有可能得到答案

标签: python groovy metaprogramming


【解决方案1】:

做了更多的研究(谷歌),我最终在 reddit 上检查了 r/Groovy,并被引导到 this 非常有用的博文

在我看来,Java 注解可用于装饰或标记具有扩展逻辑的方法。所以像

 class Root {
    @Expose
    void index() {
      #som sort of logic here
    }
 }

然后使用Java注解来检测@Expose注解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多