仍在尝试掌握泛型概念......这条线
public interface FileStructure<L extends FileStructureLevel<L>, R extends FileStructureResource> extends NodeStructure<L, R>
给出以下消息:
type argument L#1 is not within bounds of type-variable L#2
where L#1,L#2 are type-variables:
L#1 extends FileStructureLevel<L#1> declared in interface FileStructure
L#2 extends NodeStructureLevel<L#2> declared in interface NodeStructure
现在,这似乎微不足道,因为类型界限不同。然而,令人困惑的是,实际上,我只是缩小了界限,因为
public interface FileStructureLevel<E extends FileStructureLevel> extends NodeStructureLevel<FileStructureLevel>
所以不管L1
是什么,它肯定会扩展L2
。为什么不匹配?任何人?
此外,鉴于声明
public interface NodeStructure<L extends NodeStructureLevel<L>, R extends NodeStructureResource>
和
public class FileStructureResource implements NodeStructureResource<File>
为什么第一行不会产生与 相关的类似错误R
,如下所示:
type argument R#1 is not within bounds of type-variable R#2
where R#1,R#2 are type-variables:
R#1 extends FileStructureResource declared in interface FileStructure
R#2 extends NodeStructureResource declared in interface NodeStructure