【发布时间】:2014-06-02 14:45:14
【问题描述】:
我在构造函数级别使用 google guice injection。对参数进行空检查以确保它们不为空是否有意义,或者为我们注入是否有意义。顺便说一句,它是一个公共构造函数。
公共方法呢?
【问题讨论】:
我在构造函数级别使用 google guice injection。对参数进行空检查以确保它们不为空是否有意义,或者为我们注入是否有意义。顺便说一句,它是一个公共构造函数。
公共方法呢?
【问题讨论】:
仅仅因为您在某些情况下碰巧使用 Guice 调用构造函数并不意味着禁止调用它。
就我个人而言,我会包括无效性检查——如果您也使用番石榴,这些检查会非常简单。例如:
import static com.google.common.base.Preconditions.checkNotNull;
class Player implements SomeInterface {
private final String name;
@Inject
Player(String name) {
this.name = checkNotNull(name);
}
...
}
除此之外,我希望您的一些 测试 直接调用构造函数 - 尽早发现测试中的任何错误很有用,就像其他代码一样。它还向后来出现的其他人清楚地表达了您的意图。
【讨论】:
@Inject-annotated 构造函数不建议使用public:code.google.com/p/google-guice/wiki/KeepConstructorsHidden
Player 构造函数并不意味着没有其他代码会......而且最好验证它。