Los genéricos de C# no tienen comodines de tipo porque .NET genéricos son genéricos compatibles con CLR, mientras que Java JVM no admite genéricos, sino solo de azúcar de sintaxis, y se convierten en tipos de objetos cuando el compilador compilan el compilador
Los comodines de tipo representan la clase principal de tipos genéricos en Java
Public void test (list <sect> c) {for (int i = 0; i <c.size (); i ++) {system.out.println (c.get (i)); }}// Crear una lista <String> Lista de objetos <String> strList = new ArrayList <String> (); // Calendar la prueba del método de prueba anterior (StrList);
Compile el programa anterior, y se producirá un error de compilación en la prueba (strlist), lo que significa que List <String> no puede considerarse como una subclase de List <Sect>. En este momento, debes usar el Tipo de comodín, ¿cuál es un?
La lista de arriba <ject> se puede reemplazar con la lista <?> Y luego se puede compilar
Public void test (list <?> c) {for (int i = 0; i <c.size (); i ++) {system.out.println (c.get (i)); }}List <String> se puede usar como una subclase de List <?>, List <?> Se puede usar como una clase principal de cualquier tipo de lista,
¿Qué pasa si desea ser la clase principal de List <String> en lugar de List <Sint>? Escríbalo como esta lista <? extiende cadena>
En C#, este es el tipo de restricción
clase myclass <t, u> donde t: clase donde u: struct {} Interface iMyInterface {} Class Dictionary <tkey, tval> Where tkey: icomParable, ienumerable Where tval: iMyInterface {public void add (tkey key, tval val) {}}Límite superior para comodines genéricos restringidos en Java:
// indica que el tipo T debe ser la clase numérica o su subclase, y debe implementar la interfaz Java.io.Serializable Class Public Apple <t extiende el número y java.io.serializable> {}Lo anterior es el contenido completo de la comparación y el análisis de los comodines genéricos de Java y C# presentada por el editor. Espero que todos apoyen a Wulin.com ~