幂等方法是什么意思,如果调用java.lang.AutoCloseable的close方法,有什么副作用?无代码概念解释
2022-09-01 05:10:35
幂等意味着您可以多次应用该操作,但一个调用的结果状态将与多个调用的结果状态无法区分。简而言之,多次调用该方法是安全的。实际上,第二次和第三次(依此类推)调用不会对程序状态产生明显的影响。
因此,如果您关闭此对象一次,然后它关闭,则没有足够的信息来知道它是否幂等。但是,如果您关闭它两次,第一次关闭,但第二次它引发异常,它显然不是幂等的。另一方面,如果您关闭它一次,关闭它两次,并且第二次关闭导致该项目以相同的方式保持关闭状态(也许是一个noop),那么它是幂等的。
制作幂等的一种技术可能是:Closeable
public class Example implements Closeable {
private boolean closed;
public Example() {
closed = false;
}
public void close() {
if (!isClosed()) {
closed = true;
}
}
public boolean isClosed() {
return closed;
}
}
现在很明显,如果调用一次或多次,则通过状态的所有返回将永远返回 true。因此,该方法将被视为幂等。close()
isClosed()
close()