这是我从它继承的父类,我想在接口中使用另一个泛型
public class BaitushumAKBARSCard2AccountSchema<C extends BaitushumAKBARSCard2AccountSchema.Config>
extends AKBARSCard2AccountSchema<C> implements ParameterizedPayment<BaitushumAdapter.Parameters> {
private BaitushumAdapter.Parameters parameters;
@Override
public void setParameters(BaitushumAdapter.Parameters parameters) {
this.parameters = parameters;
}这是继承者类

public class JskkBaitushumAKBARSCard2AccountSchema extends BaitushumAKBARSCard2AccountSchema<JskkBaitushumAKBARSCard2AccountSchema.Config>
implements ParameterizedPayment<JskkBaitushumAdapter.Parameters> {
private JskkBaitushumAdapter.Parameters parameters;
@Override
public void setParameters(JskkBaitushumAdapter.Parameters parameters) {
this.parameters = parameters;
}参数是继承的(它们在Baitushum类中)
public static class Parameters extends ParameterizedPayment.Parameters {参数是父级
public class JskkBaitushumAdapter {
public static class Parameters extends BaitushumAdapter.Parameters {发布于 2021-10-06 03:17:39
问题是BaitushumAKBARSCard2AccountSchema和JskkBaitushumAKBARSCard2AccountSchema为ParameterizedPayment类型参数指定了不同的具体类型。为了解决这个问题,你需要让BaitushumAKBARSCard2AccountSchema接受一个额外的类型参数:
public class BaitushumAKBARSCard2AccountSchema<C extends BaitushumAKBARSCard2AccountSchema.Config,
P extends BaitushumAdapter.Parameters>
extends AKBARSCard2AccountSchema<C> implements ParameterizedPayment<P> {
private P parameters;
@Override
public void setParameters(P parameters) {
this.parameters = parameters;
}
// ...
}然后,JskkBaitushumAKBARSCard2AccountSchema的声明更改为:
public class JskkBaitushumAKBARSCard2AccountSchema
extends BaitushumAKBARSCard2AccountSchema<JskkBaitushumAKBARSCard2AccountSchema.Config,
JskkBaitushumAdapter.Parameters> {请注意两个额外的更改:
BaitushumAKBARSCard2AccountSchema,因此不再需要指定JskkBaitushumAKBARSCard2AccountSchema实现ParameterizedPayment
parameters字段和setParameters方法可以从BaitushumAKBARSCard2AccountSchema继承,不需要重新声明。https://stackoverflow.com/questions/69433830
复制相似问题