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

        return uri.endsWith(request.getContextPath() + filterProcessesUrl);
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. 26th, 2025 10:00 pm
Powered by Dreamwidth Studios