Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制在Java中调用方法的次数_Java - Fatal编程技术网

限制在Java中调用方法的次数

限制在Java中调用方法的次数,java,Java,如何限制addAddition()的调用次数?例如,如果我想将其限制为4次,那么在主类中调用它4次之后,就会出现一条错误消息 public class BaseBurger { public void addAddition(int additionNumber) { switch (additionNumber) { case 1: System.out.println("Bacon added!"); this.pric

如何限制addAddition()的调用次数?例如,如果我想将其限制为4次,那么在主类中调用它4次之后,就会出现一条错误消息

public class BaseBurger {
public void addAddition(int additionNumber) {
    switch (additionNumber) {
        case 1:
            System.out.println("Bacon added!");
            this.price += 3;
            i++;
            break;
        case 2:
            System.out.println("Salad added!");
            this.price += 2.5;
            i++;
            break;
        case 3:
            System.out.println("Juice added!");
            this.price += 3;
            i++;
            break;
        case 4:
            System.out.println("Sauce added!");
            this.price += 3.5;
            i++;
            break;
        default:
            System.out.println("Invalid value!");
    }
  }
}

添加一个字段以计算调用方法的次数。一旦达到最大限制,抛出错误。因此,您的代码可以是

public class BaseBurger {
  private int counter = 0;
  public void addAddition(int additionNumber) {
    if (counter == 4) throw new CUSTOM_ERROR();
    counter++; // increase counter each time. 
    switch (additionNumber) {
        case 1:
            System.out.println("Bacon added!");
            this.price += 3;
            i++;
            break;
        case 2:
            System.out.println("Salad added!");
            this.price += 2.5;
            i++;
            break;
        case 3:
            System.out.println("Juice added!");
            this.price += 3;
            i++;
            break;
        case 4:
            System.out.println("Sauce added!");
            this.price += 3.5;
            i++;
            break;
        default:
            System.out.println("Invalid value!");
    }
  }
}

if(i==4)抛出新错误(“调用四次”)。注意:如果您再次启动main方法,
i
值将被重置,请勿为此使用
Error
IllegalStateException
将是合适的。您应该在这些问题产生的方法之外管理此策略。是否要防止添加两次成分?我想避免在同一个汉堡中添加4种成分。我怀疑计数器应该是
静态的
,由于该限制可能会阻止在一个汉堡中添加超过4种成分。问题是实例数不能超过4个,因此静态值将保持调用该方法的次数与实例数无关。对于成分的描述,问题不是那么清楚。不,问题不是限制实例的数量,而是限制方法调用的数量。问题明确地说。它是关于限制每个实例的调用数量,尽管它没有明确说明查看类的名称,以及
print
语句所说的内容。贝斯伯格。加入“培根”、“沙拉”、“果汁”、“酱汁”。对于一个计划来说,将一个汉堡的添加量限制在4种(配料)是有意义的。将所有汉堡的配料总量限制在4是没有意义的。这一点在a中也得到了明确的澄清。现在呢?这样每个实例都有自己的字段来计算调用它的次数。