2011-08-08 68 views
0

當我需要顯示可能爲空/未定義在Javascript中的值,我通常只寫: console.log(a||"");有沒有簡寫的方式來寫Java代碼的JavaScript代碼「a ||」文本?

或類似的東西。有沒有類似的方式在Java中比其他要做到這一點:

System.out.println(a!=null?a:"");

+0

在C#中((字符串)null).ToString()實際返回一個靜態字符串。在java中可能是一樣的,試試。 – aero

回答

1

可以除了使用三元運算符做的最好的是創建一個非常短的方法做同樣的。也許, 「NS」 爲 「可爲空字符串」:

public static String ns(String nullableString) { 
    return nullableString == null ? "" : nullableString; 
} 

然後,你可以寫 「的System.out.println(納秒(一));」然而,三元運算符更清晰 - 如果我在這個地方做這個,我只會做類似上面的事情。

+0

我想我會最終使用這個解決方案,因爲空字符串在這個應用程序中很常見。 – Ivan

0

你有ternaries: 一個!= NULL?一個:「」

3

我認爲你的System.out.println(a!=null?a:"");是一個非常清晰的方式來輸出你正在尋找。

它使用三元運算符,似乎是有道理的。

(condition) ? (if true) : (if false); 
0

如果該變量未初始化,java將不會編譯。在Java中未定義是不可接受的。

如果你有一個名爲「藍莓」的變量,你想在控制檯上顯示的值,你可以這樣做:

System.out.println(blueberry); 

該代碼會顯示「空」在控制檯上,如果藍莓爲null 。

下面是一個簡單的演示

 
public class Outty 
{ 
    public static void main(String[] args) 
    { 
     String blueberry = null; 

     System.out.println(blueberry); 

     blueberry = "7"; 
     System.out.println(blueberry); 
    } 
} 
0

有沒有,因爲其他人的建議。這是因爲在JS中,布爾運算符不一定返回布爾值,它們返回導致表達式短路的對象的值。然而,在Java中,在C和其他語言,布爾運算符總是返回布爾值,因此您不必默認值a = b || c的這種便捷的方式或以防止空指針a = b && b.getValue()

0

你可以做,沒有按功能當它爲null時不打印null。
我不知道Java,但原型將是

function safePrint(object a) 
{ 
    System.out.println(a!=null?a:""); 
} 

,然後就寫

safePrint(a); 

但如果你正在尋找短代碼中使用像JavaScript或Perl解釋語言。像java這樣的編譯語言並不適用於快速編碼和短編碼。

相關問題