我从solarQube中得到了以下一种错误=“NullPointerException可能会被抛出,因为这里的“a”可以为null”。下面是该错误的简单代码示例。
类别:
class A {
int a1;
int a2;
public A () {
}
public int getA1() {
return a1;
}
public int getA2() {
return a2;
}
}
然后我有一个使用上面的类作为参数的方法:
public boolean testMethod(A a) {
if(a != null && a.getA1() != 1 || a.getA2() != 2) {
return true;
}
return false;
}
我得到了SonarQube突出显示的a.getA2!=2
的错误。我只是无法理解这些语句的问题。SonarQube描述的错误描述并没有让我更清楚。我如何修复它,有人能向我解释为什么它是错误吗?
认为运算符优先级:
所以你要理解这个说法:
if(a != null && a.getA1() != 1 || a.getA2() != 2)
是否写了:
// Evaluated together // Evaluated then
if( (a != null && a.getA1() != 1) || a.getA2() != 2)
所以
a.getA2() ! = 2
没有null
检查。
要防止NullPointerException,您必须编写的内容是对两个布尔表达式的求值,这两个布尔表达式需要进行分组
可以用括号将其括起来:
if(a != null && (a.getA1() != 1 || a.getA2() != 2))
我似乎搞不清楚下面的语句与和有关的问题是什么。请记住,仍然在开发中,我只是还没有能够在语句中测试它,所以很可能是错误的。 我得到的错误是: 而语句是这样的。
这个问题是关于C 20的/功能,而不是编译器定义的宏。 本文档(cppreference)仅给出了将它们应用于switch case语句的示例。这个switch-case示例与我的编译器(g-7.2)完美地编译在一起,所以我假设编译器已经实现了这个特性,尽管它还没有在当前的C标准中正式引入。 但是当我这样使用它们时:,我收到了一个警告: “警告:语句开头的属性被忽略[-Wattributes]”。
if 语句,就是类似于「如果○○的话,做●●」,根据条件判断脚本的一部分是否执行的语法。 语法如下: if(expression) 语句或语句块 else 语句或语句块 第一个“语句或语句块”是当 expression 表达式的结果为真时执行的部分,第二个“语句或语句块”则是结果为假时执行的部分。如果不需要 else 以后的部分,可以省略。 例: if(a==b) inform("a和b相等
行动时刻 - 在unlang中使用if语句 if语句本身并不复杂。 它具有以下格式: if(condition){ ... } 由于其许多可能性,条件部分可能变得复杂。 使用if语句获取返回码 我们现在将查看模块的返回代码,并使用此代码与指定的条件进行比较。 FreeRADIUS中的每个模块都需要在调用时返回代码。 随后可以将此代码的值用作if语句中的条件检查。 使用if语句授权用户 如
我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)
问题内容: 如果MySQL触发器中有多个if语句,那么最佳方法是什么? 目前,我的SQL如下所示: 乍看之下,这似乎行得通。但是,我注意到,当多个(else)if语句为true时,仅第一个语句被执行(例如,就像在PHP中一样)。 我如何只使用多个if,而不必是elseif,以便执行多于1条语句?用相同的动作创建多个触发器是不可能的,至少phpMyAdmin所示。将多个if置于一个触发器中会导致错误