Это может быть просто вопрос личного вкуса и рабочего процесса, но в случае, если это более того, я чувствую, что я должен все равно спросить.Java: Разница между инициализацией конструктором и статическим методом?
В Java существуют различия между созданием экземпляра через конструктор и с помощью статического метода (который возвращает экземпляр)? Например, возьмем этот бит кода из проекта я работаю (написано до вручную во время проводки, поэтому некоторые ярлыки и вольности принимаются):
Plugin main;
Map<int, int> map;
public Handler(Plugin main) {
this.main = main;
}
public static Handler init(Plugin main) {
Handler handler = new Handler(main);
handler.createMap();
}
public void createMap() {
this.map = Maps.newHashMap();
}
В подобных случаях, что бы разница будет между использованием
Handler handler = new Handler(this);
и
Handler handler = Handler.init(this);
в классе плагинов, помимо того, что createMap()
работает только в последнем, потому что это не вызывается в конструкторе?
Чтобы уточнить, в данном случае Plugin
считается основным классом.
Я знаю достаточно синтаксиса Java, чтобы иметь возможность писать плагины промежуточного уровня, но недостаточно о самой Java, чтобы узнать разницу между этими двумя способами.
EDIT: Например, класс Maps
, который я использовал для создания Map
, использует статический заводский метод (я надеюсь, что правильно использую этот термин), вызываемый с использованием класса вместо объекта.
пропустил код? – user1428716
Извините; SO, пока я не набрал его! Должно быть, случайно попал в «таблетку» и не понял этого, пока не попытался нажать Enter, чтобы вставить новую строку. Но я рад, что люди смогли прочитать и ответить на него, прежде чем я смог закончить набирать его, хотя информация, предоставленная в то время, была почти нулевой B-) – ChaoticWeg
«написанная вручную во время публикации» - вы всегда можете образцы тестового кода в [ideone] (http://ideone.com/) (Редактор «подсветки синтаксиса» для них не был бы плохим для создания тех, кто в первую очередь, если бы не настаивал на отступы с вкладками.) – millimoose