我遇到一个问题,如果在一个方法中,由一个休息终点调用,我有一个错误日志,那么该方法应该返回一个文件。否则,如果一切正确,它应该返回一个json。
有没有办法根据条件改变方法的返回类型?
答案 0 :(得分:1)
我首先要说的是,这可能是解决问题的错误方法。正确的方法是在出现错误时抛出异常,并使用异常处理程序处理它。或者,在从方法返回之前,使用回调来处理错误情况。 (这将处理你的“生成错误日志”用例。)
说完了....
这是一个“复杂”对象,可用于返回以下两种类型之一:
public class AorB {
private final A a;
private final B b;
private final boolean isA;
public AorB(A a) {
this.a = a;
this.b = null;
isA = true;
}
public AorB(B b) {
this.a = null;
this.b = b;
isA = false;
}
public boolean isA() {
return isA;
}
public A getA() {
if (isA) {
return a;
} else {
throw IllegalStateException("Not an A!")
}
}
public B getB() {
if (!isA) {
return b;
} else {
throw IllegalStateException("Not a B!")
}
}
}
或者,您可以将返回类型声明为Object
,并在调用方法中使用类型转换和instanceof
来区分返回的值。