org.springframework.http.HttpMethod este acum o clasă și nu mai este un enum

Această regulă semnalează utilizarea org.springframework.http.HttpMethod unde codul presupune că este un enum.

În Spring Framework 6, org.springframework.http.HttpMethod a fost refactorizată de la un enum la o clasă standard. În timp ce constantele utilizate în mod obișnuit, cum ar fi HttpMethod.GET și HttpMethod.POST sunt încă disponibile, orice cod care se bazează pe caracteristici specifice enum-urilor nu va mai fi compilat sau va eșua la execuție.

Dezvoltatorii trebuie să își migreze codul către alternative compatibile cu clasa, cum ar fi înlocuirea EnumSet<HttpMethod> cu Set<HttpMethod> și switch declarații cu if-else blocuri.

Următorul exemplu arată utilizarea invalidă care va fi marcată:


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

Următorul exemplu arată utilizarea migrată validă:


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

Pentru informaţii suplimentare, vedeţi resursele următoare: