Java处理带有错误日志的null字符串

时间:2017-05-05 07:10:56

标签: java

我想初始化一个String变量,然后使用

为它赋值
if (){} else if(){} 

这就是我所做的:

    String roleName;

    // A and B are string constants
    if (userRoleslist.contains(A)) {
           roleName = A;
    } else if (userRoleslist.contains(B)) {
                roleName = B;
    }
    if (!roleName.equals(null)) {
           audit.info("User: " + userName + " successfully authorized as " +
                        roleName + " to perform JMX operations.");

           return roleName;
     } else {
           String msg = "User: " + userName + " not authorized to perform JMX operations.";
           log.error(msg);
           throw new NullPointerException();
     }

问题是错误未记录到控制台。只抛出NullPointerException并指向

(!roleName.equals(null)) {

另外,我还可以省去NullPointerException和log.error吗?

2 个答案:

答案 0 :(得分:4)

if (!roleName.equals(null)) {

必须是

if (roleName != null) {

当你进行空检查时,你应该这样做。 由于roleName为null,因此在其上调用方法将为您提供空指针异常。

答案 1 :(得分:2)

roleName.equals(null)将为您提供nullpointer异常,而不是使用roleName!= null。