@AutoValue
public abstract class MyError extends Throwable {
public static MyError create(
Throwable ex,
MyErrorCode errorCode) {
return new AutoValue_MyError(ex, errorCode);
}
public abstract Throwable getError();
public abstract MyErrorCode myErrorCode();
}
我使用AutoValue
创建MyError
类,问题是如何super(ex.getCause())
传递实际上下文。看起来生成的实现不会这样做。
答案 0 :(得分:0)
HAS-A关系优于IS-A关系。所以MyError类不应该扩展Throwable类。
我认为我们无法致电super(ex.getCause())
。
AutoValue使用Builder模式创建不可变对象。
请参阅Github auto repository上的问题
getError()
方法会返回Throwable
个对象,然后您可以调用getClause()
方法。