Java 中的冪等

Sheeraz Gul 2023年10月12日
  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
作者: 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