org.springframework.http.HttpMethod most már egy osztály, és nem egy enum

Ez a szabály jelzi a org.springframework.http.HttpMethod ahol a kód feltételezi, hogy ez egy enum.

A Spring Framework 6, org.springframework.http.HttpMethod egy enumból egy szabványos osztályba került átdolgozásra. Míg az általánosan használt konstansok, mint például HttpMethod.GET és HttpMethod.POST továbbra is elérhetőek, az enum-specifikus tulajdonságokra támaszkodó kódok már nem fordíthatók le, vagy futás közben meghibásodnak.

A fejlesztőknek át kell állítaniuk a kódjukat az osztály-kompatibilis alternatívákra, például a EnumSet<HttpMethod> a címen Set<HttpMethod> és switch nyilatkozatok if-else blokkok.

A következő példa a jelzett érvénytelen használatot mutatja:


import org.springframework.http.HttpMethod;
import java.util.EnumSet;
public class InvalidHttpMethodUsage {
private EnumSet<HttpMethod> methods = EnumSet.of(HttpMethod.GET, HttpMethod.POST);
    public void handle(HttpMethod method) {
    switch (method) {
          case GET:
              System.out.println("GET");
              break;
        }
    }
}

A következő példa az érvényes áttelepített használatot mutatja:


import org.springframework.http.HttpMethod;
import java.util.Set;
public class ValidHttpMethodUsage {
private Set<HttpMethod> methods = Set.of(HttpMethod.GET, HttpMethod.POST);
    public void handle(HttpMethod method) {
    if (HttpMethod.GET.equals(method)) {
     System.out.println("GET");
        }
    }
}

Az alábbi információforrások nyújtanak további tájékoztatást: