Articles of generics

¿Por qué IEnumerable hereda de IEnumerable?

Esta podría ser una vieja pregunta: ¿por qué IEnumerable hereda de IEnumerable ? Así es como lo hace .NET, pero trae un pequeño problema. Cada vez que escribo una clase implementa IEumerable , tengo que escribir dos funciones GetEnumerator() , una para IEnumerable y otra para IEnumerable . Y, IList no hereda de IList. No […]

¿Cómo hacer que el método Java devuelva una lista genérica de cualquier tipo?

Me gustaría escribir un método que devuelva un java.util.List de cualquier tipo sin la necesidad de encasillar algo : List users = magicalListGetter(User.class); List vehicles = magicalListGetter(Vehicle.class); List strings = magicalListGetter(String.class); ¿Cómo se vería la firma del método? Algo como esto, tal vez (?): public List< ?> magicalListGetter(Class clazz) { List list = doMagicalVooDooHere(); return […]

Usar una variable de tipo en un genérico

Tengo esta pregunta a excepción de Swift. ¿Cómo uso una variable Type en un genérico? Intenté esto: func intType() -> Int.Type { return Int.self } func test() { var t = self.intType() var arr = Array() // Error: “‘t’ is not a type”. Uh… yeah, it is. } Esto tampoco funcionó: var arr = Array() […]

¿Es esto un error de covarianza en C # 4?

En el siguiente fragmento de código, esperaba poder convertir implícitamente elements en elements baseElements porque TBase es implícitamente convertible a IBase . public interface IBase { } public interface IDerived : IBase { } public class VarianceBug { public void Foo() where TBase : IBase { IEnumerable elements = null; IEnumerable derivedElements = null; IEnumerable […]

¿Por qué la inferencia de tipo genérico Java 8 elige esta sobrecarga?

Considere el siguiente progtwig: public class GenericTypeInference { public static void main(String[] args) { print(new SillyGenericWrapper().get()); } private static void print(Object object) { System.out.println(“Object”); } private static void print(String string) { System.out.println(“String”); } public static class SillyGenericWrapper { public T get() { return null; } } } Imprime “Cadena” en Java 8 y “Objeto” en […]

Crear una extensión para filtrar nils desde una matriz en Swift

Intento escribir una extensión a Array que permita transformar una matriz de T’s opcionales en una matriz de T no opcionales. por ejemplo, esto podría escribirse como una función gratuita como esta: func removeAllNils(array: [T?]) -> [T] { return array .filter({ $0 != nil }) // remove nils, still a [T?] .map({ $0! }) // […]

¿Cómo inicializar una Lista a un tamaño dado (en contraposición a la capacidad)?

.NET ofrece un contenedor de lista genérico cuyo rendimiento es casi idéntico (consulte la pregunta sobre el rendimiento de las matrices frente a las listas). Sin embargo, son bastante diferentes en la inicialización. Las matrices son muy fáciles de inicializar con un valor predeterminado, y por definición ya tienen cierto tamaño: string[] Ar = new […]

Cómo Autowire Bean de tipo genérico en spring?

Tengo un Item frijol que se requiere para ser auto-conectado en una clase @Configuration . @Configuration public class AppConfig { @Bean public Item stringItem() { return new StringItem(); } @Bean public Item integerItem() { return new IntegerItem(); } } Pero cuando bash @Autowire Item , obtengo la siguiente excepción. “No qualifying bean of type [Item] […]

Manera genérica de verificar si la entidad existe en Entity Framework

¿Es similar a la mejor forma de verificar si el objeto existe en Entity Framework? Estoy buscando una forma genérica de verificar una entidad en un DbSet . Algo como esto, que no funciona: private DbContext DbContext { get; set; } private DbSet DbSet { get; set; } public Boolean Exists(T entity) { return ((from […]

En asp.net mvc, ¿es posible hacer un controlador genérico?

Estoy intentando crear un controlador genérico, es decir: public class MyController : Controller where T : SomeType { … } Sin embargo, cuando trato de usarlo, me encuentro con este error en todas partes … El nombre del controlador debe terminar en ‘Controlador’ Entonces, mi pregunta, ¿es posible hacer un controlador genérico en asp.net mvc? […]