泛型之常用的通配符有哪些?
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Documentação
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- java
- Domínio
- documentation
Direção de pesquisa
Nenhum arquivo ou teste é indicado. Comece localizando no repositório a documentação sobre genéricos ou curingas do Java e, em seguida, revise as explicações e os exemplos da issue em relação ao guia ao redor. A tarefa estará concluída quando o escopo pretendido estiver acordado e a documentação relevante explicar corretamente curingas limitados, não limitados e limitados inferiormente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
常用的通配符为: T,E,K,V,?
? 表示不确定的 Java 类型
T (type) 表示具体的一个 Java 类型
K V (key value) 分别代表 Java 键值中的 Key Value
E (element) 代表 Element
上面说的 T、E、K、V 其实都只是类型参数。而 ? 才是通配符,而且准确来说,是无限定通配符。
通配符分为有限定通配符,无限定通配符,超类型通配符。
有限定通配符:形式类似于 <? extends E>,E 如果为类,只有传入的类型参数为 E 的本身及子类才可以使用,E 如果为接口,则必须实现该接口,只能读不能写,可以用类型参数替代。
public void addAll(DynamicArray<? extends E> array) {
}
无限定通配符:形式为 <?>,都可以使用,只能读不能写,可以用类型参数替代。
public void addAll(DynamicArray<?> array) {
}
超类型通配符:形式为 <? super E>,可以实现对象往父类型写入,不可以用类型参数替代。
public void copyTo(DynamicArray<? super E> dest) {
}
简单总结
其中有限定通配符和无限定通配符只能读不能写,可以被类型参数替代。而超类型通配符可以使用对象往父类型写入,不可以用类型参数替代。
有限定通配符和无限定通配符既然能被类型参数替换,该如何选择使用的?
应该根据使用场景:
- 需要写入的,必须使用类型参数。
- 只需要读的,优先使用通配符,通配符让代码看起来更简单。
- Linguagem predominante
- JavaScript
- Estrelas
- 159k
- Forks
- 46.1k
- Merge médio
- 1d 19h
- PRs com merge (30d)
- 6
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Snailclimb/JavaGuide
-
失效链接替换Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
Snailclimb/JavaGuide#2922 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 45/100
Snailclimb/JavaGuide#2649 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
perfect content
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 55/100
Snailclimb/JavaGuide#2453 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
关于Disruptor中填充了多少字节的补充Abertaperfect content
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
Snailclimb/JavaGuide#2259 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
Snailclimb/JavaGuide#2074 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de Snailclimb/JavaGuide
Issues semelhantes
-
Add: Digi 4K LogoAbertacheck:passed logos:add
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
component/administration domain/framework needs-triage Platform(Default) priority/low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
semantic-release/gitlab#1032 ·
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
Mantenedores costumam responder em até 1 dia
-
[aw] Upgrade availableAbertaagentic-workflows
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
githubnext/gh-aw-workshop#3933 ·
Mantenedores costumam responder em até 2 dias