泛型之常用的通配符有哪些?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Documentación
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- documentation
Línea de trabajo
No se indica ningún archivo ni ninguna prueba. Empieza por localizar en el repositorio la documentación sobre genéricos o comodines de Java y, después, revisa las explicaciones y los ejemplos del issue comparándolos con la guía circundante. Se considera terminado cuando se haya acordado el alcance previsto y la documentación pertinente explique correctamente los comodines acotados, no acotados y acotados inferiormente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
常用的通配符为: 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) {
}
简单总结
其中有限定通配符和无限定通配符只能读不能写,可以被类型参数替代。而超类型通配符可以使用对象往父类型写入,不可以用类型参数替代。
有限定通配符和无限定通配符既然能被类型参数替换,该如何选择使用的?
应该根据使用场景:
- 需要写入的,必须使用类型参数。
- 只需要读的,优先使用通配符,通配符让代码看起来更简单。
- Lenguaje dominante
- JavaScript
- Estrellas
- 159k
- Forks
- 46.1k
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 10
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Snailclimb/JavaGuide
-
失效链接替换 Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Snailclimb/JavaGuide#2922 · 1 comentario ·
-
关于数组转集合方法的第六种:使用Java9的List.of() Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
Snailclimb/JavaGuide#2649 · 2 comentarios ·
-
perfect content
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
Snailclimb/JavaGuide#2453 · 3 comentarios ·
-
关于Disruptor中填充了多少字节的补充 Abiertoperfect content
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Snailclimb/JavaGuide#2259 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Snailclimb/JavaGuide#2074 ·
Todos los issues de Snailclimb/JavaGuide
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Improve Title Support Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·