Guice впрыскивать нулевую проверку?

1

Я использую google guice inject на уровне конструктора. Имеет ли смысл делать нулевую проверку параметров, чтобы убедиться, что они не являются нулевыми или инъекция делает это для нас. Btw, его общественный конструктор.

Как насчет общественного метода?

Теги:
inject
guice

1 ответ

6
Лучший ответ

Просто потому, что вы, случаем, используете Guice для вызова конструктора, в некоторых случаях не означает, что что-либо еще запрещает его называть.

Лично я бы включил проверки недействительности, которые очень легкие на крутых, если вы тоже используете Guava. Например:

import static com.google.common.base.Preconditions.checkNotNull;

class Player implements SomeInterface {
    private final String name;

    @Inject
    Player(String name) {
        this.name = checkNotNull(name);
    }

    ...
}

Помимо всего прочего, я ожидал бы, что некоторые из ваших тестов будут напрямую обращаться к конструктору - и это поможет найти ошибки в ваших тестах как можно раньше, так же как и другие коды. Он также четко выражает ваше намерение всем, кто приходит позже.

  • 2
    Просто хотелось бы отметить, что в большинстве случаев, @Inject -annotated Конструкторы не рекомендуется , чтобы public : code.google.com/p/google-guice/wiki/KeepConstructorsHidden
  • 1
    @TavianBarnes: хороший звонок. Сделал как класс, так и конструктор package-private, и реализовал интерфейс ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню