我有这个代码:
public static class MyWebDriver extends RemoteWebDriver {
@NotNull
private final String nodeId;
public MyRemoteWebDriver(@NotNull String nodeId) {
super();
this.nodeId = nodeId;
}
@Override
public void quit() {
System.out.println("deleting node: " + nodeId);
}
}
并保证传递给构造函数的nodeId不为空.并且因为nodeId字段是final,我希望它可以在我的quit()方法中初始化.
但是,在super()构造函数中有一个try-catch块,在异常调用quit()方法的情况下会抛出异常.在这种情况下,我在我的quit()方法中得到的nodeId没有初始化(具有空值).
有什么办法可以避免吗?
@Override
public void quit() {
if (nodeId != null) {
System.out.println("deleting node: " + nodeId);
}
}
这个?这看起来很愚蠢,因为nodeId被标记为@NotNull.