有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

if条件中的null值和null指针异常java

我想用java做下面的事情

String subject=null,receiver=null,subject_db=null,receiver_db=null,cc=null,cc_db=null;
suject=msg.getSubject();
sub_db=rs.getString("subject");
receiver=msg.getreceiver();
receiver_db=rs.getString("receiver");
cc=msg.getcc();
cc_db=rs.getString("cc"); String foldername;

if((subject.equals(sub_db)) && (receiver.equals(receiver_db)) && (cc.equals(cc_db)))
  foldername="spam";
else
  foldername="Inbox";

正如您在这里看到的,任何变量都可以是null。如果发生这种情况,它会抛出NullPointerException。有没有什么方法可以让我喜欢, String s1=nullString s2=null如果我比较if(s1.equals(s2)),那么它返回我true。。。我知道上面的代码无法实现这一点。但我如何以其他方式做到这一点

如果我没有正确地解释我的问题,我真的很抱歉

如蒙帮助,我将不胜感激

谢谢


共 (3) 个答案

  1. # 1 楼答案

    如果我知道你想比较字符串,即使它们是空的

    为此,只需在if语句中添加一个条件,如:

    if((string1 == null && string2==null) || string1.equals(s2))
    {
    //Your code
    }
    
  2. # 2 楼答案

    if((s1 == null && s2 == null) || s1.equals(s2))

  3. # 3 楼答案

    比如说

    private boolean nullsOrEquals(string s1, string s2)
    {
      if (s1 == null)
        return (s2 == null);
    
      return s1.equals(s2);
    }
    
    if (nullsOrEquals(subject, sub_db) && [etc])
      foldername="spam";
    else
      foldername="Inbox";