org.springframework.http.HttpMethod est désormais une classe et non plus une énumération

Cette règle signale l'utilisation de org.springframework.http.HttpMethod où le code suppose qu'il s'agit d'un enum.

Dans Spring Framework 6, org.springframework.http.HttpMethod est passé d'une énumération à une classe standard. Alors que les constantes couramment utilisées telles que HttpMethod.GET et HttpMethod.POST sont toujours disponibles, tout code reposant sur des fonctionnalités spécifiques aux énumérations ne sera plus compilé ou échouera à l'exécution.

Les développeurs doivent migrer leur code vers des alternatives compatibles avec les classes, en remplaçant par exemple EnumSet<HttpMethod> par Set<HttpMethod> et switch déclarations avec if-else blocs.

L'exemple suivant montre une utilisation non valide qui sera signalée :


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

L'exemple suivant montre une utilisation migrée valide :


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

Pour plus d'informations, voir les ressources suivantes :