Java 中的幂等

Sheeraz Gul 2023年1月30日 2022年4月26日
  1. Java 中的幂等
  2. Java 中的幂等方法
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());
    }
}

Closeablejava.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
Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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