gpt4 book ai didi

java - 在错误消息中添加补充信息

转载 作者:行者123 更新时间:2023-11-30 10:20:44 25 4
gpt4 key购买 nike

我曾尝试编写一个方法,该方法接受错误并返回相同的错误,但在消息末尾添加了一个感叹号,但存在一个问题,即 java 中的错误是不可变的,并且由于限制泛型的不可能创建新的错误实例通过使用新的 T(e, message) :

public static <T extends Throwable> T withExclamationMark(T error) {
return new T(error.getMessage() + "!", error);
}

有没有不需要反射等的简单解决方案?

最佳答案

您可以使用 BiFunction 来做到这一点:

public static <T extends Throwable> T withExclamationMark(
T error,
BiFunction<String, T, T> factory) {

return factory.apply(error.getMessage() + "!", error);
}

然后,您可以按如下方式使用此方法:

RuntimeException original = new RuntimeException("Message");

RuntimeException decorated = withExclamationMark(original, RuntimeException::new);

System.out.println(decorated.getMessage()); // Message!

关于java - 在错误消息中添加补充信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48097721/

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