org.springframework.http.HttpMethod je nyní třída a ne enum

Toto pravidlo označuje použití org.springframework.http.HttpMethod kde kód předpokládá, že se jedná o enum.

Na stránkách Spring Framework 6, org.springframework.http.HttpMethod byl přeformulován z výčtu na standardní třídu. Zatímco běžně používané konstanty, jako např HttpMethod.GET a HttpMethod.POST jsou stále k dispozici, kód spoléhající se na specifické funkce enum se již nezkompiluje nebo selže za běhu.

Vývojáři musí svůj kód převést na alternativy kompatibilní s třídami, jako je nahrazení EnumSet<HttpMethod> s Set<HttpMethod> a switch výpisy s if-else bloky.

Následující příklad ukazuje neplatné použití, které bude označeno:


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;
        }
    }
}

Následující příklad ukazuje platné migrované použití:


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");
        }
    }
}

Další informace viz následující prostředky: