Разница между #strings и стандартными методами String - PullRequest
0 голосов
/ 28 сентября 2018

В чем разница между:

${obj.title.replaceAll(' ', '-')

и специфическим для тимелина:

${#strings.replace(obj.title, ' ', '-')}

Я знаю, что в первом примере я использую стандартный метод String, а во втором - строкикласс от Thymeleaf.Какой из них предпочтительнее и почему?Есть ли какой-то конкретный случай, когда методы из класса String не могут быть использованы, и они должны быть заменены эквивалентными строками?

1 Ответ

0 голосов
/ 28 сентября 2018

Вот несколько отличий:

  • strings.replace первый параметр не обязательно должен быть строкой и может быть нулевым
  • strings.replace второй параметр, который вы 'поиск не является регулярным выражением, в то время как sdk String#replaceAll будет работать с регулярным выражением

Вы можете найти случаи, когда Thymeleaf кажется предпочтительным, например.когда вы не хотите испачкать код пустыми проверками или вызовами toString.Тем не менее, я всегда буду использовать SDK API, потому что

  • он намного лучше известен и задокументирован, поэтому новым разработчикам будет легче понять
  • API Java всегда будет обновляться в обратном направлении.совместимый способ;Tymeleaf api может изменить детали реализации в будущем, и поскольку сообщество намного меньше, у вас нет уверенности, что они сосредоточатся на обратной совместимости.Любой, кому когда-либо приходилось обновлять сторонние библиотеки в проекте, знает, о чем я говорю.Что если однажды они решат переопределить метод замены с помощью регулярных выражений, то вам придется изменить свой код, чтобы избежать специальных символов регулярного выражения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...