在此代码中。
public class Test {
public static void testFun(String str) {
if (str == null | str.length() == 0) {
System.out.println("String is empty");
} else {
System.out.println("String is not empty");
}
}
public static void main(String [] args) {
testFun(null);
}
}
我们null
向函数传递值testFun
。可以正常编译,但是NullPointerException
在运行时提供了一个我没想到的。为什么它引发异常,而不是评估if
条件true
并显示“字符串为空”?
假设传递给实际参数的值testFun
是从某个进程生成的。假定该null
进程错误地返回了一个值并将其馈送到testFun。如果是这种情况,如何验证传递给函数的值是否为null?
一种(奇怪的)解决方案可能是将形式参数分配给函数内部的某个变量,然后对其进行测试。但是,如果有许多变量传递给该函数,则可能变得乏味且不可行。那么,在这种情况下如何检查空值呢?
所做的修改恰好显示了有效代码与无效代码之间的区别。
此检查始终评估 两个 条件,如果str
为null 则抛出异常:
if (str == null | str.length() == 0) {
而这(使用||
代替|
)是 短路的 -如果第一个条件求值为true
,则第二个条件不求值。
有关JLS的说明,请参见JLS的15.24
节;有关二进制文件||
,请参见15.22.2节|
。不过,第15.24节的简介很重要:
条件或运算符|| 运算符就像| (第15.22.2节),但仅当其左侧操作数的值为false时才评估其右侧操作数。
我正试图在android中创建一个干净的复选框代码,但如果我只是按下按钮而没有选中复选框,则会出错这是清理复选框的代码: 这是我在重置按钮上输入的代码 该复选框是一个声明: 显然,如果未选中复选框并出现错误,tem.getItemId为null。 注:如果你不知道答案或不明白,最好询问或继续,然后投否决票。让其他有帮助的人看到这个问题
有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。
问题内容: 我的存储过程中的这段代码: 是类型。 执行此存储过程时,我提供了 表明 //如果是正确的 代替 它在sql中的某个函数中,用于验证字符串是否为null或为空, 或者 我在某个地方犯了错误? 就像在C#中-> 问题答案: 这是正确的行为。 如果将@设置为一个值,则下面的表达式为true 无论如何,在SQL Server中都没有这样的功能,但是您可以创建自己的功能:
问题内容: 我想检查浏览器是否仍然存在,如果不存在,那么我想打开一个新的浏览器!网络驱动程序中是否有可用的api来检查浏览器是否仍然存在? 问题答案: 调用后,将driver的值设置为 但是,如果调用,它将驱动程序的值设置为 因此,如果您在调用 driver.quit() 之后检查浏览器窗口,则可以通过以下实现知道。
我一直面临的问题是,一个页面中有25个div class=二级属性的元素,我正在尝试获取地址标签,但在这25个div元素中的一些元素中,地址标签可能根本不存在。 而跨度类 = 邻居将永远存在。如果有,我需要从地址中获取文本,否则我将从 span 类中获取文本 这是我在四处搜索后尝试过的代码,但它没有完成工作,因为它获得了整个站点的地址属性大小。 这些是我的原始代码。但是每当我遇到没有地址的div块
问题内容: 我需要检查value是否定义为任何东西,包括null。将null值视为undefined并返回。以以下为例: 请注意,这是未定义的。 我需要找到满足以下条件的条件: 有任何想法吗? 问题答案: IIRC,您可以使用此功能: