Java方法布尔值,当它应该为真时返回false

时间:2014-10-15 03:22:32

标签: java object methods boolean

我在一个班级里制作这个方法。我已经加倍检查它和所有它应该相应地工作。当我使用这种方法在main方法中运行一个对象时,我总是得到一个错误的返回,即使它应该是真的。

打印报表不打印,所以我无法检查值是否正确传递,我也尝试使if语句返回true,它仍然返回false!它完全符合我的要求,因为一切都在逻辑上正确。

是否存在一条规则我不知道如果某些事情错误,布尔方法会自动返回false?

public boolean addPartsDetails (String newDescription, double newCost) {

  System.out.println("is description empty?: " + newDescription);
  System.out.println("is cost negative?: " + newCost);

  if (newDescription.isEmpty() | newCost < 0) {   
     return false;
  }

  else {
     this.partsCost += cost;
     String newPart = String.format("\t - %s (%.2f) \n", description, cost);
     this.partsList = this.partsList.concat(newPart);
     return true;
  }
 }

主要方法:

 boolean addBool = tempObj.addPartsDetails(partDes, partCost);

    if(addBool) {
       System.out.println("\nPart details recorded sucessfullyfor vehicle \"" +     tempObj.getRegNum() + "\"");
    }
    else {
       System.out.println("\nError - invalid part details supplied!");
    }

1 个答案:

答案 0 :(得分:1)

我相信你想用||而不是|这里:

  if (newDescription.isEmpty() | newCost < 0) {   

将其更改为

  if (newDescription.isEmpty() || newCost < 0) {   

|用于按位OR运算,而||用于条件OR