Spring HttpStatus.valueOf кажется неэффективным? - PullRequest
0 голосов
/ 23 апреля 2020

Значение метода идет по всем oop по кодам, которые мне кажутся неэффективными. Я что-то пропустил?
Я использую пружину 4.2.5

    public static HttpStatus valueOf(int statusCode) {
        for (HttpStatus status : values()) {
            if (status.value == statusCode) {
                return status;
            }
        }
        throw new IllegalArgumentException("No matching constant for [" + statusCode + "]");
    }

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Я не уверен, что именно вы спрашиваете, но да, по сравнению с более поздней версией Spring есть некоторая модификация, но логика c остается такой же.

В Spring 5.1.7 это выглядит следующим образом. Git

    public static HttpStatus valueOf(int statusCode) {
        HttpStatus status = resolve(statusCode);
        if (status == null) {
            throw new IllegalArgumentException("No matching constant for [" + statusCode + "]");
        }
        return status;
    }


    @Nullable
    public static HttpStatus resolve(int statusCode) {
        for (HttpStatus status : values()) {
            if (status.value == statusCode) {
                return status;
            }
        }
        return null;
    }
0 голосов
/ 23 апреля 2020

в чем твоя путаница? Можете спросить меня . foreach в values ​​(), когда statusCode равен, ломает l oop и возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...