вот ещё джавная экзотика
Dec. 10th, 2013 05:17 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
if ("".equals(request.getContextPath())) { return uri.endsWith(filterProcessesUrl); } return uri.endsWith(request.getContextPath() + filterProcessesUrl);
if ("".equals(request.getContextPath())) { return uri.endsWith(filterProcessesUrl); } return uri.endsWith(request.getContextPath() + filterProcessesUrl);
Re: это вы про "".equals(request.getContextPath()?
Date: 2013-12-11 07:32 am (UTC)а какая разница?
Date: 2013-12-11 07:46 am (UTC)В конечном счете все сводится к:
"".equals(null)
vs
null.equals("")
Первое корректно говорит, что не равно, второе падает. Выглядит может и странно, но работает надежно, и читается теми кто в теме тоже нормально.
Re: а какая разница?
Date: 2013-12-11 07:54 am (UTC)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)А в целом да, согласен. Только к сожалению в реальности нет хорошего способа описать, и главное, выполнять подобный контракт для методов.
Вернее, описать-то (скажем как @NonNull) можно, только оно ничего не гарантирует в runtime.