嗨,伙计们不确定一行代码它看起来像下面的层次结构。
public interface MyIntA<T extends MyIntB> {
//stuff
}
第二个
public interface MyIntB<T extends MyIntC>{
//stuff
}
然后在代码中的其他地方我看到这个
MyIntA<MyIntB> var = doStuff();
其中 doStuff((; 的返回类型
<T extends MyIntB> MyIntA <T>
怎么允许MyIntA<MyIntB> var
?
什么是变量?类型 Interface<Interface>
?
让我给你一个现有的例子,可以帮助你理解-
我们都使用java.util.List
. List
是一个接口,以下是List
的签名
public interface List <E> {
void add(E x);
Iterator<E> iterator();
...........
}
现在这里E
是将在List
中使用的变量类型。因此,当您声明类型为 Integer
的 List
变量时,您调用的如下所示
List<Integer> list;
在您的示例中,同样的事情正在发生。定义一个MyIntA
变量,您将在其中将此变量用于扩展MyIntB
的某种类型。
接口类型的变量是什么类型?
Interface
不是一个类型......var
的类型与声明的类型相同,即MyIntA<MyIntB>
有关更多详细信息,您可以查看文档