gpt4 book ai didi

java - 如何将异常类中的方法传递给异常构造函数?

转载 作者:行者123 更新时间:2023-12-03 09:08:46 24 4
gpt4 key购买 nike

我写了一个类,它应该模拟汽车和燃油系统,一旦汽车驶过一定距离,我试图抛出“OutOfFuelException”,这样做,我想从 OutOfFuelException 传递一个方法类进入构造函数调用,但我不知道如何在没有实际创建类的实例的情况下做到这一点。

这是异常类的代码:

public class OutOfFuelException extends Exception {
private double fuelNeeded;

public OutOfFuelException (double fuelNeeded) {
super("You need fuel!");
this.fuelNeeded = fuelNeeded;
}

public double getShortfall() {
return fuelNeeded;
}
}

这是使用方法调用的尝试:
if (miles > getRange()) {
fuel = 0;
throw new OutOfFuelException(getShortfall());
}

最佳答案

您的 Exception类可能接受一个功能接口(interface)。

public class OutOfFuelException extends Exception {
public OutOfFuelException(final Supplier<String> valueSupplier) {
super(valueSupplier.get());
}

...
}

在这种情况下,您可以将不接受参数并返回 String 的方法引用传递给构造函数。值或适当的 lambda 表达式。
public void myMethod() throws OutOfFuelException {
...

if (miles > getRange()) {
throw new TestException(this::buildValue);
}
}

public String buildValue() {
return "My value";
}

根据您的需要进行调整,但请不要那样做。

关于java - 如何将异常类中的方法传递给异常构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54717115/

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