Если у меня есть статическое поле, которое я хочу инициализировать, инициализирует его в конструкторе, чтобы оно было назначено каждый раз, когда создается экземпляр нового экземпляра класса?Инициализация статических полей в конструкторе
private static Connection connection;
public Database() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(HOST, USERNAME, PASSWORD);
} catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e) {
e.printStackTrace();
}
}
Я мог бы сделать это:
private static Connection connection = DriverManager.getConnection(HOST, USERNAME, PASSWORD);
Однако мне нужно иметь обработку исключений. Я также посмотрел на использование статического блока, но это вызвало проблемы.
'но это вызвало проблемы.' ??? – SLaks
Просто не используйте 'static' members/initializers. Делайте все с объектами. –
Нет, я просто думаю об эффективности. Я не хочу создавать экземпляр нового объекта подключения и назначать его для каждого экземпляра. –