Поскольку isEmpty()
проверяет, равна ли длина String
0, а ""
только String
с длиной 0, каждый String
, для которого isEmpty()
возвращает true
также вернет true
к .equals("")
.Технически, они делают то же самое .
Может быть минимальная разница в производительности, но я бы не стал беспокоиться об этом (я был бы очень удивлен, если бы это былозаметно в производственном коде).
Другое отличие состоит в том, что если вы написали "".equals(someString)
, то это будет "null
-safe".Другими словами: если бы someString
было null
, эта конструкция просто оценила бы как false
и не выбросила бы NullPointerException
.Однако, если у вас есть someString.equals("")
, то это не применяется.
Самое важное отличие заключается в том, как оно читается: isEmpty()
создает намерение очень ясно: вы хотите обрабатывать пустые строки по-разному..equals("")
немного меньше ясно («если эта строка равна другой строке, то она оказывается пустой»).