0

目前我使用带有命名参数的辅助注入,如下所示:

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);
}

所以本质上我想要自定义辅助注释。有没有办法做到这一点?

4

1 回答 1

1

据我所知,这种自定义@Assisted注释风格并不作为一项功能存在。正如您所说,区分相同类型的辅助注入参数的唯一方法是使用命名@Assisted注释。

您提出的建议可能是可实施的,因此如果您认为值得,您可以随时在 Guice 站点 [1] 上提交功能请求。

不过,我的直觉是,这种方法不会有太多附加值,因为它们很容易与正常的绑定注释混淆,而注释的含义@Assisted大不相同。另外,定义注释类型确实需要相当多的样板文件。

  1. http://code.google.com/p/google-guice/
于 2012-05-27T14:44:22.787 回答