2013-03-12 2 views
0

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

Я хочу, чтобы создать переменную condional рода

String fileName = (if (this.filename != null) { return this.filename; } 
        else { return "default value"; }); 

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

+3

Посмотрите тройной оператор. –

+0

Да, это то, что я ищу. Благодаря! – DerekE

+0

Возможный дубликат [Как работает тернарный оператор?] (Http://stackoverflow.com/questions/463155/how-does-the-ternary-operator-work) –

ответ

7

Использование тернарного оператора. На мой взгляд, это одна из стратегий в defensive programming.

String fileName = (this.filename != null? this.filename : "default value"); 
+0

lol. Наши ответы точно такие же: P –

+0

У меня медленный интернет. Извинения: P – Geros

+0

Кстати, я видел, что вы отправили сначала. : P –

5
String fileName = this.filename != null ? this.filename : "default value"; 
0

Вы можете использовать ternary operator: boolean expression ? value1 : value2

String fileName = fileName == null ? "Default value" : this.filename; 
1

Или, что более многословным, но (возможно) проще понять

String aFilename; 
if (this.filename != null) 
    aFilename = this.filename; 
else 
    aFilename = "Default Value"; 
return aFilename; 

Я предпочитаю код Careal, но YMMV. Некоторые находят? оператор сложный (особенно в беспорядочных случаях)

Кроме того, при выполнении операции с отладчиком этот код будет проще видеть, что произошло.

+1

Я хотел сохранить строки, тройной оператор - это то, что я искал, спасибо за ответ: D – DerekE

+1

@DerekE: сколько вам придется платить за каждую используемую вами линию? Сколько вы действительно сохраняете, когда сохраняете строки? Если вы жертвуете удобочитаемостью и у вас будет сложная отладка позже, вы действительно ничего не спасаете. 1+ –

+0

Спасибо за верхнюю. Одним из незначительных преимуществ этого метода является то, что когда вы переходите к отладчику, обычно гораздо легче видеть, что происходит. Очень полезно в сложных случаях. – user949300

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