我似乎无法将以下内容声明为实例变量。
public Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
如果在方法/测试方法中声明,那么它可以正常工作。
“默认构造函数无法处理由隐式超级构造函数抛出的异常类型SQLException。必须定义一个显式构造函数”是抛出的错误,我也尝试在另一个类中声明它并从那里检索它。
任何帮助表示感谢。
答案 0 :(得分:2)
不是声明失败 - 它是尝试使用可以抛出已检查异常的表达式初始化变量。
您应该声明该字段,然后在构造函数中初始化它。该构造函数必须声明它抛出SQLException
(或捕获异常本身)。
作为旁注,我强烈建议避开公共领域。
例如:
public class Foo {
private final Statement statement;
public Foo(Connection connection) throws SQLException {
statement = connection.createStatement(...);
}
}