Guice注入空检查?

ND2*_*D27 1 java inject guice

我在构造函数级别使用google guice注入.对参数进行空检查以确保它们不为null或者为我们执行注入是否有意义.顺便说一下,它是一个公共构造函数.

公共方法怎么样?

Jon*_*eet 6

仅仅因为你碰巧在某些情况下使用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);
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

除了其他任何东西,我希望你的一些测试直接调用构造函数 - 并且尽可能早地找到测试中的任何错误,就像其他代码一样.它还明确表达了您对以后出现的其他人的意图.

  • 只是想指出,在大多数情况下,不建议将`@Inject`注释的构造函数设置为`public`:https://code.google.com/p/google-guice/wiki/KeepConstructorsHidden (2认同)