У меня есть библиотека и создать экземпляр, я использую метод connectWith() для отправки модели базы данных:Принудительно вызов метода, чтобы избежать бросать исключение
Wallet wallet = new WalletPoket();
wallet.connectWith(
DAOFactory.getDAOFactory(DAOFactory.MYSQL)
);
СЛЕДОВАЛА эти методы:
int privateCardId = wallet.addCard(1, "Economy 1");
boolean wasDeleted = wallet.deleteCard(privateCardId);
...
Вызов предыдущих методов приведет к исключению NullPointerException, если метод connectWith() не вызывается ранее. Можно ли заставить пользователя вызвать метод connectWith() или представить пользователю предупреждение, если это не так? Было бы приемлемо вызывать метод из конструктора?
Wallet wallet = new WalletPoket(
DAOFactory.getDAOFactory(DAOFactory.MYSQL)
);
Что было бы лучшей альтернативой?
Вы можете добавить более специфичное 'NotConnectedException' и убедиться, что это указано, что именно так вы используете свой API. Я также думаю, что добавление его к вашему конструктору было бы хорошим способом. – jacob
Если вы отвечаете за библиотеку, вы можете просто набросить пользовательские 'IllegalStateException', ** заставляя их их вызывать. В документации вашей библиотеки также должно быть четко разъяснено это требование. –
Лучше всего использовать его в конструкторе, желательно в качестве переданного параметра. В противном случае ваш конструктор возвращает частично инициализированный объект. – bradimus