我的带否定的if语句不起作用

时间:2019-06-18 12:15:39

标签: java if-statement

仅当我的代码未放在if语句中时,它才能正确执行。为什么会这样呢?我认为条件一定有问题,应该检查来自JTextFields的字符串是否不为空。 这是我的代码,无需使用if语句即可工作:

user1.name = name1;
user1.password = pass1;
user1.ip = i1;
save(user1);

这是执行不当的if语句:

if(!name1.equals("") && !pass1.equals("") && !i1.equals("")) {
        user1.name = name1;
        user1.password = pass1;
        user1.ip = i1;

        save(user1);            
}

注意:name1,pass1和i1都是基本值的字符串。 name1可以是Bob,pass1可以是Bob123,i1可以是192.168.32.1

2 个答案:

答案 0 :(得分:3)

因为您要尝试

  

检查来自JTextFields的字符串是否不为空

检查文档中的isEmpty()方法,并使用类似以下内容的方法:

if((name1 != null && !name1.isEmpty()) && 
   (pass1 != null && !pass1.isEmpty()) && 
   (i1 != null && !i1.isEmpty()) ) {
      //....

}

答案 1 :(得分:3)

一个独特的非答案:您在错误的位置进行了验证!

您的UI元素应该只允许您在存在所需值时触发该保存操作。创建防止用户犯错的用户体验。不用花费时间去发现“哦,用户犯了个错误”!

换句话说:您应该监听文本字段上的状态,并且仅当所有三个文本字段的内容均为非空时,您才 >启用您的“保存”按钮/菜单项!并且当字段之一再次变空时,最好禁用该按钮/菜单项。