3

我希望在编译时识别具有特定模式的特定方法,并在父类中与指定的 id 槽 mixins 一起注册。

例如:从具有预定 id:5 的类中获取方法“X”,我想要的是,在父类的 mixin 中,方法 X 将被注册为具有其 id 的委托,以便稍后由它的标识。

考虑到我希望 id 是 int 类型并且只注册指定的方法,那么指定 Id 的最佳方法是什么?

我应该(如果可能的话)使用非常类似于@property 但带有参数的自定义注释来做到这一点,例如:

@autoregister(id)
void method(...)

如果可以这样做,那么一个示例或文档链接会很好,因为我没有在文档中找到它。

如果不可能,我将使用函数的签名作为字符串,但我真的想尽可能使用数字标识符而不是可能很长的字符串。

4

1 回答 1

1

目前无法进行自定义注释(但将来会)。

但是,您可以制定自己的方法命名约定,这将允许您执行与您所描述的类似的事情。我没有时间深入思考如何做到这一点,但我会从有一个方法开始,比如:

public void id30_doSomething(/* params */) {
  // body
} 
alias id30_doSomething doSomething;

// finally, lets do something with all these methods
// and generate mixin...

在此之后,您可能会列出所有方法并查找它们的名称是否匹配id([0-9]*)_.*,如果是,则生成 mixin 以将它们注册到父...

于 2012-06-27T16:07:50.580 回答