2015-04-22 19 views
0

Хотя описание метода oracles говорит, что оно возвращает true, только если длина строки равна 0, методы utils utils описание говорит, что метод также проверяет строку на «null». Какой метод следует использовать? Если строка имеет длину 0 (например, «»), она автоматически не «null», или если я сделал свою строку «null», а затем проверил ее пустоту с помощью метода oracles, я бы получил «false», nullcheck метода apaches избыточен, или я совершенно не прав в своих мыслях? Пожалуйста, помогите мне понять разницу!java.lang.String # isEmpty() vs org.apache.commons.lang.StringUtils # isEmpty()

+1

Как следует 'myString.isEmpty()' 'работа, если myString' является' null'? -> * «Я сделал свою строку равной« null », а затем проверил ее пустоту с помощью метода oracles, я получил бы« false », *, no вы бы получили« NullPointerException ». – Tom

+1

, если вы проверите нулевую строку с помощью 'isEmpty()' oracle', вы получите NPE – Abhishek

+0

Ну, он работает в версии apache –

ответ

2

Я бы предпочел всегда использовать версию Apache. Версия Oracle требует наличия ненулевой строки, поскольку это метод экземпляра, например.

String s = null; 
s.isEmpty(); <--- throws a NullPointerException 
StringUtils.isEmpty(s); <--- returns true 

Если вы не хотите включать Викисклада Ланг в вашем проекте вы можете получить ту же функциональность с помощью

s != null && s.isEmpty() 
0

Метод Apache полезен, когда вы не знаете, если строка была установлен или нет.

if (s != null && !s.isEmpty()) { 
    System.out.print(s) 
} 

против

if (!StringUtils.isEmpty(s)) { 
    System.out.print(s) 
} 

Это сделает ваш код более кратким

Смежные вопросы