目前我使用带有命名参数的辅助注射,如下所示:
public interface Factory {
public MyObject create(@Assisted("string1") String string1, @Assisted("string2") String string2);
}
这很好用。但我认为使用字符串作为参数的标识符有点丑陋。我想做的是:
public interface Factory {
public MyObject create(@String1 String string1, @String2 String string2);
}
所以本质上我想要自定义辅助注释。有没有办法做到这一点?
据我所知,这种自定义@Assisted
注释的样式并不作为功能存在; 正如您所说,区分相同类型的辅助注入参数的唯一方法是使用命名@Assisted
注释。
您的建议可能是可以实现的,因此如果您认为值得,您可以随时在Guice站点[1]上提交功能请求。
不过,我的直觉是,这种方法不会有太多的附加值,因为它们太容易与普通的绑定注释混淆,而@Assisted
注释的含义却大不相同。另外,定义注释类型确实需要相当多的样板文件。
- http://code.google.com/p/google-guice/