下面是相关代码:Java泛型难题
public interface Artifact {}
public interface Bundle implements Artifact {}
public interface Component implements Artifact {}
public interface State<T extends Artifact> {
void transition(T artifact, State<T> nextState);
}
这让我定义这个枚举:
enum BundleState implements State<Bundle> {
A, B, C;
public void transition(Bundle bundle, State<Bundle> nextState) {}
}
}
但方法签名,我要的是:
public void transition(Bundle bundle, BundleState nextState) {}
}
但这不会编译。显然问题在于我如何在State
界面中定义T
,但我无法弄清楚如何解决它。
谢谢, 唐