2011-08-08 67 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这样的编译语言并不适用于快速编码和短编码。

相关问题