我似乎遇到了通用接口的编译错误。目标是创建一个在我的测试类中使用的接口,定义域类和生成的DTO类的常用方法。我做了一些挖掘,到目前为止我找到的答案似乎都不适用于我想要做的事情。大多数答案要么回溯到这个:class not within type bounds,或者他们建议使用通配符,这不是一个选项。
当我尝试编译时,出现以下错误:
[uberCompile] BrandDto.java:10: error: type argument T#1 is not within bounds of type-variable T#2
[uberCompile] public class BrandDto<T extends SubCollectionDto> implements IBrand<T> {
[uberCompile]
[uberCompile] where T#1,T#2 are type-variables:
[uberCompile] T#1 extends SubCollectionDto declared in class BrandDto
[uberCompile] T#2 extends ISubCollection declared in interface IBrand
我的班级结构如下:
interface IBrand<T extends ISubCollection>
interface ISubCollection
class Brand<T extends SubCollection>
extends Entity
implements IBrand<T>
class SubCollection
extends Entity
implements ISubCollection
生成的DTO类看起来像:
class SubCollectionDto
implements ISubCollection
class BrandDto<T extends SubCollectionDto>
implements IBrand<T>
我真的绞尽脑汁试图理解我在这里做错了什么。任何帮助将不胜感激。
答案 0 :(得分:0)
我想我终于明白了。它实际上是一个与泛型无关的类路径问题。当我最初设置DTO课程时,他们就是在&#39; src&#39;目录。我后来将它们移动到另一个目录中,但显然旧文件夹从未被删除。因此,在查看旧目录时,eclipse正在查看当前正确的文件集。不知道为什么会导致我看到的错误消息,但它现在正在运行。