我有if
条件来评估电子邮件地址。我正在测试2件事
我对短路的理解是,如果OR(||)语句中的第一个条件为真,那么第二个条件不会被评估。然而,我得到NullPointerException
因为第二个陈述得到了评估(我已经对它进行了测试)。
我对这里的短路有什么了解?
相关代码如下:
仅供参考:emailtext来自EditText元素,在这种情况下是" notavalidemail"
String[] split = emailtext.split("@", 2);
final AlertDialog.Builder notifier = new AlertDialog.Builder(this);
Log.i("GetToken","Split[0]=" + split[0] + "; length=" + split.length);
if (split.length == 1 || !split[1].equals("gmail.com")) {
//Tell the user they didn't enter a correct gmail
}
代码中的日志返回:
05-02 13:51:16.447 27553-27553/com.farmsoft.lunchguru.app I/GetToken﹕ Split[0]=notavalidemail; length=1
答案 0 :(得分:0)
使用此代码可以避免此问题:
String[] split = emailtext.split("@", 2);
final AlertDialog.Builder notifier = new AlertDialog.Builder(this);
Log.i("GetToken","Split[0]=" + split[0] + "; length=" + split.length);
boolean errorMail = true;
if(split.length == 2)
{
if(split[1].equals("gmail.com"))
{
errorMail = false;
}
}
if(errorMail)
{
// Mail error
}