juan_gandhi: (VP)
[personal profile] juan_gandhi
        if ("".equals(request.getContextPath())) {
            return uri.endsWith(filterProcessesUrl);
        }

        return uri.endsWith(request.getContextPath() + filterProcessesUrl);

Date: 2013-12-11 01:38 am (UTC)
From: [identity profile] demmonoid.livejournal.com
Such a fine jewel.

Date: 2013-12-11 02:14 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Тут ещё что пикантно, сравниваем case-sensitive.
В одном месте filterProcessedUrl в апперкейсе, а в другом та же константа да в нижнем.

а разве http url case insensitive?

Date: 2013-12-11 07:20 am (UTC)
From: [identity profile] serge shikov (from livejournal.com)
По-моему как раз наоборот, в общем случае.

Что в коде в разных местах может быть две разные констатны - ну это дурь, но другая.

Re: а разве http url case insensitive?

Date: 2013-12-11 05:03 pm (UTC)
From: [identity profile] demmonoid.livejournal.com
Конечно case sensitive. Тот же base64, например.

Date: 2013-12-11 05:02 am (UTC)
From: [identity profile] exceeder.livejournal.com
Чета как-то сложно все (шутка)

Date: 2013-12-11 06:25 am (UTC)
From: [identity profile] vp.livejournal.com
Вообще мне кажется дуростью сравнивать число/значение с переменной/пропертью, а не наоборот. Ну вот чего они этим добились?



From: [identity profile] serge shikov (from livejournal.com)
request.getContextPath() может быть null, в отличие от "". Вот и вся очевидная разница. Дурость? Гм.

Date: 2013-12-11 07:27 am (UTC)
From: [identity profile] henu3detb.livejournal.com
Эх, да...
From: [identity profile] vp.livejournal.com
getContextPath() возвращает какой тип?

а какая разница?

Date: 2013-12-11 07:46 am (UTC)
From: [identity profile] serge shikov (from livejournal.com)
В java нету non-nullable типов. А у null нельзя вызвать equals. В смысле, есть конечно примитивы, но строки к ним не относятся.

В конечном счете все сводится к:
"".equals(null)
vs
null.equals("")

Первое корректно говорит, что не равно, второе падает. Выглядит может и странно, но работает надежно, и читается теми кто в теме тоже нормально.
Edited Date: 2013-12-11 07:50 am (UTC)

Re: а какая разница?

Date: 2013-12-11 07:54 am (UTC)
From: [identity profile] vp.livejournal.com
getContextPath()
Returns the portion of the request URI that indicates the context of the request.

А как так, в такой постановке вопроса, она может возвращать null? Не найденная часть подстроки - это пустая строка нулевой длины, но не null.

Вы согласны? А то мы так договоримся до того, что String.substring() тоже null возвращать начнет.

Re: а какая разница?

Date: 2013-12-12 07:07 am (UTC)
From: [identity profile] serge shikov (from livejournal.com)
Ну я не про конкретный getContextPath() говорил, а про то, зачем в equals переставлять местами this и аргумент.

А в целом да, согласен. Только к сожалению в реальности нет хорошего способа описать, и главное, выполнять подобный контракт для методов.

Вернее, описать-то (скажем как @NonNull) можно, только оно ничего не гарантирует в runtime.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718 1920 21
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2025 08:59 am
Powered by Dreamwidth Studios