在构造函数(java)中查询数据库?

Akg*_*Akg 4 java oop

在构造函数中执行查询是一个好习惯吗?

class Foo {
  public Foo() {
    populateData();
  }

  private void populateData() {
    // query database here...
  }
}
Run Code Online (Sandbox Code Playgroud)

med*_*eda 7

构造函数的唯一目的是创建一个类的实例.

查询数据库的问题是操作可能失败.

此时,如果您没有正确处理异常,那么您的代码就是bug的候选者.

您应该将构造函数视为一种准备使用对象的方法,该方法应该很快.