Diese Regel kennzeichnet die Verwendung von org.springframework.http.HttpMethod wobei der Code davon ausgeht, dass es sich um eine enum.
In Spring Framework 6, org.springframework.http.HttpMethod wurde von einem Enum zu einer Standardklasse umstrukturiert. Während üblicherweise verwendete Konstanten wie HttpMethod.GET und HttpMethod.POST noch verfügbar sind, wird jeglicher Code, der auf enum-spezifische Funktionen angewiesen ist, nicht mehr kompiliert oder schlägt zur Laufzeit fehl.
Die Entwickler müssen ihren Code auf klassenfähige Alternativen umstellen, z. B. durch Ersetzen von EnumSet<HttpMethod> mit Set<HttpMethod> und switch aussagen mit if-else blöcke.
Das folgende Beispiel zeigt eine ungültige Verwendung, die gekennzeichnet wird:
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;
}
}
}
Das folgende Beispiel zeigt eine gültige migrierte Verwendung:
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");
}
}
}
Weitere Informationen finden Sie in den folgenden Quellen: