gpt4 book ai didi

java - 在子类的构造函数中抛出异常

转载 作者:行者123 更新时间:2023-12-04 01:08:37 25 4
gpt4 key购买 nike

所以我的问题是我有一个类及其子类。

-> 类 Kassenbon-> 类 KassenbonVerbessert 扩展了 Kassenbon

在我的“Kassenbon”类中,我有这个构造函数:

   public Kassenbon(int max) {
produkte = new String[max];
preise = new Integer[max];
}

然后我的子类的构造函数如下所示:

   public KassenbonVerbessert(int max) {
super(max);
}

我现在的问题是我想检查参数 max,如果它是负数,那么我想抛出一个异常,因为这意味着构造函数将创建 2 个长度为负数的数组,这是不可能的。但是我该怎么做,仅仅因为 super 调用必须是构造函数中的第一条语句,对吧?!但是我该如何实现:

if(max < 0){
throw new IllegalArgumentException("Error");
}

最佳答案

首先,看起来在 Kassenbon 构造函数中检查更有意义。但是如果你不想这样做,你可以内联一个方法调用来检查参数:

public KassenbonVerbessert(int max) {
super(checkMax(max));
}

private static int checkMax(int max) {
if (max < 0) {
throw new IllegalArgumentException("max cannot be negative.");
}
return max;
}

关于java - 在子类的构造函数中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65539096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com