java - 不兼容的类型 - 泛型接口和实现
问题描述
我有一个通用接口定义为:
public interface Service<T extends Slicer, E extends Slice> {
}
和一个实现:
public class DynamoDbService implements Service<DynamoDbSlicer, DynamoDbSlice> {
}
如果我尝试实例化DynamoDbService
并将其分配给如下类型的变量Service<DynamoDbSlicer, DynamoDbSlice>
:
public class Test {
private void test() {
final Service<Slicer, Slice> service = new DynamoDbService();
}
}
我收到一个incompatible types
错误:
Incompatible types.
Required: Service <Slicer, Slice>
Found: DynamoDbService
作为DynamoDbService
实现通用接口,这不应该是好的吗?以下没有泛型的示例按我的预期工作,以及我希望前面的示例如何工作:
public interface ThingInterface {
}
public class Thing implements ThingInterface {
}
private void thingTest() {
final ThingInterface thingInteface = new Thing();
}
解决方案
推荐阅读
- google-cloud-platform - 如何配置 gcsfuse 以在 google cloud vm 中挂载存储桶并以最佳方式访问资源?
- c# - Unity C# - 当类被销毁时,无限循环线程是否终止?
- javascript - 不滚动时滚动条消失
- java - Ternary operator returns an unexpected output
- mysql - mysql插入存储过程抛出错误
- python - 如何查找和存储达到大于每行中第一个值的值所需的列数?
- r - 由于字符变量,在 R 中运行 T 测试时出现错误消息
- django - 如何覆盖 Django 通用基础视图的调度方法?
- java - react-native-notifications 在 iOS 上工作,在 Android 上失败
- python - Numpy Array,删除列中的重复项,直到新值