org.springframework.http.HttpMethod es ahora una clase y no un enum

Esta regla marca el uso de org.springframework.http.HttpMethod donde el código asume que es un enum.

En Spring Framework 6, org.springframework.http.HttpMethod ha pasado de ser un enum a una clase estándar. Mientras que las constantes de uso común como HttpMethod.GET y HttpMethod.POST todavía están disponibles, cualquier código que dependa de características específicas de enum ya no compilará o fallará en tiempo de ejecución.

Los desarrolladores deben migrar su código a alternativas compatibles con las clases, como sustituir EnumSet<HttpMethod> con Set<HttpMethod> y switch declaraciones con if-else bloques.

El siguiente ejemplo muestra el uso no válido que se marcará:


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

El siguiente ejemplo muestra un uso migrado válido:


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

Para obtener más información, consulte los recursos siguientes: