我想要在编译时识别特定模式的特定方法,并在父类中通过mixins注册指定的id。
例: 从具有预定id:5的类中获取方法'X',我想要的是,在父类的mixin中,方法X将被注册为委托,其id将由其id稍后调用。
如果我希望id为int类型并且只注册指定的方法,那么指定Id的最佳方法是什么?
我应该(如果可能的话)使用自定义注释来完成它,就像@property一样,但是带有一个参数,例如:
@autoregister(id)
void method(...)
如果可以这样做,一个示例或文档的链接将会很好,因为我没有在文档中找到它。
如果不可能,我会将函数的签名用作字符串,但我真的想用数字标识符代替可能很长的字符串。
答案 0 :(得分: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以在父级中注册它们......