猿问

Java泛型的类型参数中的问号是什么意思?

Java泛型的类型参数中的问号是什么意思?

这是从斯坦福分析器附带的一些例子中摘录的一小段代码片段。我已经用Java开发了大约4年,但是我从来没有对这种风格的代码有很强的理解。

List<? extends HasWord> wordList = toke.tokenize();

我不担心密码的细节。我感到困惑的是,在英语中,泛型表达应该传达什么。

有人能给我解释一下吗?


料青山看我应如是
浏览 535回答 3
3回答

慕的地8271018

问号是“任何类型”的能指。?单指任何类型扩展Object(包括Object)你上面的例子意味着任何类型的扩展或实现HasWord(包括HasWord如果HasWord是一个非抽象类)

牧羊人nacy

List<? extends HasWord>接受任何扩展HasWord的具体类。如果你有以下课程.。public&nbsp;class&nbsp;A&nbsp;extends&nbsp;HasWord&nbsp;{&nbsp;..&nbsp;}public&nbsp;class&nbsp;B&nbsp;extends&nbsp;HasWord&nbsp;{&nbsp;..&nbsp;}public&nbsp;class&nbsp;C&nbsp;{&nbsp;..&nbsp;}public&nbsp;class&nbsp;D&nbsp;extends&nbsp;SomeOtherWord&nbsp;{&nbsp;..&nbsp;}..这个wordList只能包含as或bs或两者的混合列表,因为这两个类都扩展了相同的父类或null(它无法执行对HasWorld).
随时随地看视频慕课网APP

相关分类

Java
我要回答