Preguntas etiquetadas con generics

Meta técnica, que permite posponer la configuración del tipo confiable al tiempo de ejecución.


7
¿Qué hay de malo con los genéricos de Java? [cerrado]
He visto varias veces en este sitio publicaciones que denuncian la implementación de genéricos en Java. Ahora, puedo decir honestamente que no he tenido ningún problema con su uso. Sin embargo, no he intentado hacer una clase genérica yo mismo. Entonces, ¿cuáles son sus problemas con el soporte genérico de …
49 java  generics 

6
¿Buena o mala práctica para enmascarar colecciones de Java con nombres de clase significativos?
Últimamente he tenido la costumbre de "enmascarar" colecciones de Java con nombres de clase amigables para los humanos. Algunos ejemplos simples: // Facade class that makes code more readable and understandable. public class WidgetCache extends Map<String, Widget> { } O: // If you saw a ArrayList<ArrayList<?>> being passed around in …

4
¿Qué es el abuso de genéricos?
Mientras revisaba algún código, noté la oportunidad de cambiarlo para usar genéricos. El código (ofuscado) se ve así: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Este código podría ser reemplazado por genéricos, así: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); ... } …
35 generics 

12
¿Es un olor a código almacenar objetos genéricos en un contenedor y luego obtener objetos y rechazar los objetos del contenedor?
Por ejemplo, tengo un juego que tiene algunas herramientas para aumentar la capacidad del jugador: Tool.h class Tool{ public: std::string name; }; Y algunas herramientas: Espada.h class Sword : public Tool{ public: Sword(){ this->name="Sword"; } int attack; }; Shield.h class Shield : public Tool{ public: Shield(){ this->name="Shield"; } int defense; …

3
Un buen sistema de tipos genéricos
Es comúnmente aceptado que los genéricos de Java fallaron de algunas maneras importantes. La combinación de comodines y límites condujo a un código seriamente ilegible. Sin embargo, cuando miro otros idiomas, realmente parece que no puedo encontrar un sistema de tipo genérico con el que los programadores estén contentos. Si …

8
C # Genéricos: ¿cómo evitar el método redundante?
Supongamos que tengo dos clases que se ven así (el primer bloque de código y el problema general están relacionados con C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Estas clases no se pueden …
28 c#  generics 

1
¿Cuál es la diferencia entre <? extiende Foo> y <Foo>
Parece que tengo un malentendido sobre la diferencia entre &lt;Foo&gt;y &lt;? extends Foo&gt;. Según tengo entendido, si tuviéramos ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Esto indica que Foose pueden agregar objetos de tipo a esta lista de matriz. Como las subclases de Footambién son de tipo Foo, también se pueden agregar …
20 java  generics 

3
Genéricos vs interfaz común?
No recuerdo cuándo escribí la clase genérica la última vez. Cada vez que creo que lo necesito después de pensarlo, llego a una conclusión que no. La segunda respuesta a esta pregunta me hizo pedir una aclaración (ya que aún no puedo comentar, hice una nueva pregunta). Así que tomemos …

4
¿Quién extiende las interfaces? ¿Y por qué?
AFAIK, mi clase extends, clases e implementsinterfaces para padres . Pero me encuentro con una situación en la que no puedo usar implements SomeInterface. Es la declaración de un tipo genérico. Por ejemplo: public interface CallsForGrow {...} public class GrowingArrayList &lt;T implements CallsForGrow&gt; // BAD, won't work! extends ArrayList&lt;T&gt; Aquí …



4
Java: use polimorfismo o parámetros de tipo acotado
Supongamos que tengo esta jerarquía de clases ... public abstract class Animal { public abstract void eat(); public abstract void talk(); } class Dog extends Animal { @Override public void eat() { } @Override public void talk() { } } class Cat extends Animal { @Override public void eat() { …


3
¿Cómo se implementan los genéricos?
Esta es la pregunta desde la perspectiva interna del compilador. Estoy interesado en los genéricos, no en las plantillas (C ++), así que marqué la pregunta con C #. No Java, porque AFAIK los genéricos en ambos idiomas difieren en las implementaciones. Cuando miro los idiomas sin genéricos, es bastante …
16 c#  generics 

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.