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