Java 中的幂等
幂等意味着我们可以多次应用一个操作,但结果总是相同的。例如,我们调用幂等方法的频率无关紧要。结果总是一样的。
本教程演示了在 Java 中使用幂等性。
Java 中的幂等
如上所述,幂等方法每次都返回相同的结果。例如,x=1;
是幂等的,因为它每次都返回 1
,但是 x++;
不能是幂等的,因为每次调用都会改变结果。
例如,如果我们关闭一个对象一次,那么现在我们没有足够的信息来知道该对象在关闭后是否是幂等的。
为了检查这一点,我们需要再次关闭该对象,如果它抛出异常,则表示该对象不是幂等的,如果在关闭时返回相同的结果,则表示该对象是幂等的。
让我们尝试在 Java 中实现一个幂等的 closeable
。
package delftstack;
import java.io.Closeable;
public class Idempotent implements Closeable {
private static boolean closed;
public Idempotent() {
closed = false;
}
public void close() {
if (!Is_Closed()) {
closed = true;
}
}
public static boolean Is_Closed() {
return closed;
}
public static void main(String args[]) {
System.out.println(Is_Closed());
System.out.println(Is_Closed());
}
}
Closeable
是 java.io
的一个类。我们通过初始化一个布尔值并在 Idempotent 方法中将其设置为 false
来实现一个幂等的 closeable
;它总是会返回 false
。
见输出:
false
false
Java 中的幂等方法
幂等方法术语对应于 HTTP 方法。HTTP 方法是幂等的,即无论我们调用多少次请求,方法的结果始终相同。
让我们尝试通过示例了解幂等 HTTP 方法。
GET
请求:无论我们发出多少次 GET
请求,如果请求执行正确,我们将始终得到相同的响应。
例如,我们发出 GET
请求以在系统中查看我们的结果。无论我们请求多少次,它总是一样的。
HTTP 方法分为两种类型,一种是 Idempotent,另一种是 Non-Idempotent。下表演示了哪些 HTTP 方法是幂等的,哪些不是。
方法 | 是否是幂等的 |
---|---|
GET |
是的 |
PUT |
是的 |
POST |
不 |
DELETE |
是的 |
HEAD |
是的 |
OPTIONS |
是的 |
PATCH |
不 |
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook