Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查对象是否为空的较短方法?_Java - Fatal编程技术网

Java 检查对象是否为空的较短方法?

Java 检查对象是否为空的较短方法?,java,Java,那么,有没有一种更短的方法来检查字符串/对象是否为空 String str = someMethodThatReturnsStringOrNull(someOthreObject); if(str == null) { System.out.println("Empty"); } 例如,像JS样式: if(str) { System.out.println("Empty"); } 没有 Java要求条件语句的表达式必须是boolean类型,或者可以自动转换为boole

那么,有没有一种更短的方法来检查字符串/对象是否为空

    String str = someMethodThatReturnsStringOrNull(someOthreObject);
    if(str == null) { System.out.println("Empty"); }
例如,像JS样式:

    if(str) { System.out.println("Empty"); }
没有

Java要求条件语句的表达式必须是boolean类型,或者可以自动转换为boolean类型;唯一可以这样转换的类型是布尔类型,通过取消装箱

除非定义的方法名称非常短,否则不能使用更少的字符:

if (n(str)) {   // "n()" requires 3 characters
if (str == null) {  // " == null" requires 8 characters
                    // (remove the whitespace if you want to do it in 6...)
但是这5个额外的角色节省了大量的认知负担,让我们不必去想n到底是什么?!,更不用说定义和/或导入该方法的附加字符了。另一方面,任何编写过Java或其他语言的人都能立即理解==null

str==null准确地传达了您测试的目的:引用是null,而不是空的,或者可以转换为值为零的数字,或者其他什么

==null还具有有益的编译时属性,例如,它将停止使用基本操作数,例如int i=0;if i==null{}是一个编译时错误,因为i是原语,因此不能为null,而if ni{}将被允许,前提是形式参数类型是Object,您希望它是Object,以便最大限度地重用,因为i将被装箱

Java是一种相当冗长的语言;还有很多事情比这更详细。就个人而言,我甚至不会注意到writing==null,这是我肌肉记忆中的条件

别担心了,学着喜欢语法。

Java要求条件语句的表达式必须是boolean类型,或者可以自动转换为boolean类型;唯一可以这样转换的类型是布尔类型,通过取消装箱

除非定义的方法名称非常短,否则不能使用更少的字符:

if (n(str)) {   // "n()" requires 3 characters
if (str == null) {  // " == null" requires 8 characters
                    // (remove the whitespace if you want to do it in 6...)
但是这5个额外的角色节省了大量的认知负担,让我们不必去想n到底是什么?!,更不用说定义和/或导入该方法的附加字符了。另一方面,任何编写过Java或其他语言的人都能立即理解==null

str==null准确地传达了您测试的目的:引用是null,而不是空的,或者可以转换为值为零的数字,或者其他什么

==null还具有有益的编译时属性,例如,它将停止使用基本操作数,例如int i=0;if i==null{}是一个编译时错误,因为i是原语,因此不能为null,而if ni{}将被允许,前提是形式参数类型是Object,您希望它是Object,以便最大限度地重用,因为i将被装箱

Java是一种相当冗长的语言;还有很多事情比这更详细。就个人而言,我甚至不会注意到writing==null,这是我肌肉记忆中的条件


不要再担心了,要学会热爱语法。

@AndyTurner不处理if条件;首先不要将其设置为null,这样就不需要进行检查。做某事最快的方法就是不去做。无论如何,答案是否定的。@UdayaShankaraGandhiThalabat。调用一个方法来执行该语言提供的操作是没有意义的。@AndyTurner不处理if条件;首先不要将其设置为null,这样就不需要进行检查。做某事最快的方法就是不去做。无论如何,答案是否定的。@UdayaShankaraGandhiThalabat。调用一个方法来执行语言提供的某些操作是没有意义的。在Java中复制JS版本的ifstr不仅仅是一个空检查。false、undefined、NaN、0和false在JavaScript中也都返回false。@Compass这正是我在段落中用Precise Expressions表达的观点。==null意味着一个确切的东西。我同意这句话,我只是不知道如何描述这个问题,因为提供的等价于notnull的JavaScript实际上不是notnull检查,并且有一个显式版本。事实上,JS的显式版本的空检查实际上比Java的长:ifstr===null在Java中复制JS版本的ifstr要比空检查多得多。false、undefined、NaN、0和false在JavaScript中也都返回false。@Compass这正是我在段落中用Precise Expressions表达的观点。==null意味着一个确切的东西。我同意这句话,我只是不知道如何描述这个问题,因为提供的等价于notnull的JavaScript实际上不是notnull检查,并且有一个显式版本。事实上,JS的null-check显式版本实际上比Java的长:ifstr===null