我有一个以这种方式声明的接口:
public interface GenericBo<T, PK extends Serializable> {
public ResultObject create(T newInstance);
...
}
以这种方式声明的抽象类:
public abstract class GenericServiceImpl<T, PK> implements GenericService<T, PK> {
private final GenericBo<T, PK> bo;
......
......
}
但是在声明'bo'实例时我在抽象类中有错误: 绑定不匹配:类型PK不能替代GenericBo
类型的有界参数应如何声明“GenericBo bo”实例?什么是正确的代码?
答案 0 :(得分:2)
你有
class GenericBo<T, PK extends Serializable>
所以当你宣布
时private final GenericBo<T, PK> bo;
PK
必须延伸Serializable
。
但是
class GenericServiceImpl<T, PK>
没有这样的限制。你需要添加它。
public abstract class GenericServiceImpl<T, PK extends Serializable> implements GenericService<T, PK> {
private final GenericBo<T, PK> bo;
}
答案 1 :(得分:1)
问题是在抽象类中,PK不需要扩展Serializable。更改抽象类通用定义,以便PK扩展Serializable,或从接口中删除该需求。