2015-07-26 3 views
1

ли это правильно инициализировать строку, какJava Строка инициализации и Значение по умолчанию

String value = new String("test"); 

значение строки присваивается в нескольких местах, и если значение равно нулю, то по умолчанию значение, которое должно быть принято испытание, которое означает, если я объявляю

String value = null; 

В какой-то момент я назначил значение, если в коде не присвоено значение.

+3

это правильно, но это пустая трата ресурсов. Просто используйте 'String value =" test ";' Я не понимаю, что вы имеете в виду со второй частью вопроса. –

+0

Я не понял вторую часть вашего вопроса. –

+0

Вы пытаетесь уклониться от NullPointer? – Sentient07

ответ

3

Переменные не могут иметь значение по умолчанию, которое используется, если позднее их присвоить значение null. Этого не существует.

Если вы

String a = "test"; 
// ... 
a = null; 

тогда a будет иметь значение null. Если вы хотите использовать «тест» вместо нуля, то вы должны сделать это явно:

String actualValue = a; 
if (actualValue == null) { 
    actualValue = "test"; 
} 

или просто

String actualValue = a == null ? "test" : a; 
+0

Мое намерение состоит в том, чтобы избежать использования, если условие для проверки значения строки равно null или нет, назначив значение по умолчанию. – user75ponic

+0

Но нет такой вещи, как значение по умолчанию для переменной. Это моя точка зрения. Если вы назначаете «тест» переменной, а некоторый код переназначает ее до нуля позже, она станет нулевой. –

+0

Это нормально, при объявлении времени строка является тестом, и если значения не назначены, то тестовое значение будет принято правильно? – user75ponic

4

Я думаю, вы не сможете изменить value = null по умолчанию value= "test". Если строка «тест», что действительно важно для вас, когда вы обращаетесь к value, сделайте следующее:

if(value == null){ 
     value = "test"; 
    } 

Вместо того, чтобы писать это условие всюду в коде, что вы можете сделать, это вызвать функцию getStringValue() вместо использования value.

String getStringValue(){ 
    if(value == null){ 
     value = "test" 
    } 
    return value; 
} 

Это же, как и проверки состояния, как упоминалось выше, но это производит чистый код, и вам не нужно писать, что условие каждый раз.

+0

Спасибо Karthik за понимание. – user75ponic

1

Если вы хотите, чтобы строка не была нулевой, вы можете просто проверить ее значение перед ее назначением.

String value = valueCommingFromSomewhere; 
if (value == null) { 
    value = "myDefaultValue"; 
} 
+0

Спасибо за понимание. – user75ponic

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