AutoValue如何调用super
AutoValue how to call super
@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
class,问题是我如何 super(ex.getCause())
传递实际上下文。看起来生成的实现并没有这样做。
HAS-A 关系优于 IS-A 关系。所以 MyError class 不应该扩展 Throwable class.
我想我们不能打电话给 super(ex.getCause())
。
AutoValue 使用生成器模式创建不可变对象。
查看 Github auto repository 上的问题
getError()
方法将 return Throwable
对象然后你可以调用相同的 getClause()
方法。
@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
class,问题是我如何 super(ex.getCause())
传递实际上下文。看起来生成的实现并没有这样做。
HAS-A 关系优于 IS-A 关系。所以 MyError class 不应该扩展 Throwable class.
我想我们不能打电话给 super(ex.getCause())
。
AutoValue 使用生成器模式创建不可变对象。
查看 Github auto repository 上的问题
getError()
方法将 return Throwable
对象然后你可以调用相同的 getClause()
方法。