¿Existe un método limpio de burlarse de una clase con parámetros genéricos? Digamos que tengo que burlarme de una clase Foo<T>que necesito pasar a un método que espera a Foo<Bar>. Puedo hacer lo siguiente con bastante facilidad: Foo mockFoo =
¿Existe un método limpio de burlarse de una clase con parámetros genéricos? Digamos que tengo que burlarme de una clase Foo<T>que necesito pasar a un método que espera a Foo<Bar>. Puedo hacer lo siguiente con bastante facilidad: Foo mockFoo =
Puede encontrar lo siguiente en la web: ¿Tipo más alto == constructor de tipo? class AClass[T]{...} // For example, class List[T] Algunos dicen que este es un tipo de tipo superior, ya que abstrae sobre tipos que cumplirían con la definición. Los tipos de tipo superior son tipos que toman...
¿Cuál es la razón por la cual Java no nos permite hacer private T[] elements = new T[initialCapacity]; Podría entender que .NET no nos permitió hacer eso, ya que en .NET tiene tipos de valor que en tiempo de ejecución pueden tener diferentes tamaños, pero en Java todo tipo de T serán referencias...
Tengo problemas para navegar la regla de Java para inferir parámetros de tipo genérico. Considere la siguiente clase, que tiene un parámetro de lista opcional: import java.util.Collections; import java.util.List; public class Person { private String name; private List<String> nicknames;...
Yo tengo; List<String> stringList = new ArrayList<String>(); List<Integer> integerList = new ArrayList<Integer>(); ¿Hay alguna forma (fácil) de recuperar el tipo genérico de la
Me encuentro con un código Java como este: public interface Foo<E> {} public interface Bar<T> {} public interface Zar<?> {} ¿Cuál es la diferencia entre los tres anteriores y cómo llaman a este tipo de declaraciones de clase o interfaz en
Tengo pocos métodos que devuelven diferentes listas genéricas. ¿Existe en .net algún método estático de clase o lo que sea para convertir cualquier lista en una tabla de datos? Lo único que puedo imaginar es usar Reflection para hacer esto. SI tengo esto: List<Whatever> whatever = new...
public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <-- static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException(
¿Hay alguna diferencia práctica real entre ay SortedList<TKey,TValue>a SortedDictionary<TKey,TValue>? ¿Hay alguna circunstancia en la que usarías específicamente uno y no el
Tengo un método genérico que tiene dos parámetros genéricos. Traté de compilar el siguiente código pero no funciona. ¿Es una limitación de .NET? ¿Es posible tener múltiples restricciones para diferentes parámetros? public TResponse Call<TResponse, TRequest>(TRequest request) where TRequest...
Estaba leyendo Un recorrido por Scala: Tipos abstractos . ¿Cuándo es mejor usar tipos abstractos? Por ejemplo, abstract class Buffer { type T val element: T } más bien que los genéricos, por ejemplo, abstract class Buffer[T] { val element:
Hay una buena discusión sobre los genéricos y lo que realmente hacen detrás de escena en esta pregunta , por lo que todos sabemos que Vector<int[]>es un vector de matrices de enteros, y HashTable<String, Person>es una tabla de cuyas claves son cadenas y valores Persons. Sin embargo, lo...
Tengo una aplicación que usa dlls administrados. Uno de esos dlls devuelve un diccionario genérico: Dictionary<string, int> MyDictionary; El diccionario contiene claves con mayúsculas y minúsculas. Por otro lado, obtengo una lista de posibles claves (cadenas), sin embargo, no puedo...
Por ejemplo, supongamos que tiene dos clases: public class TestA {} public class TestB extends TestA{} Tengo un método que devuelve ay List<TestA>me gustaría convertir todos los objetos en esa lista para TestBque termine con a
Leí sobre el borrado de tipos de Java en el sitio web de Oracle . ¿Cuándo ocurre el borrado de tipo? ¿En tiempo de compilación o tiempo de ejecución? Cuando se carga la clase? ¿Cuándo se instancia la clase? Muchos sitios (incluido el tutorial oficial mencionado anteriormente) dicen que el borrado...
¿Por qué los genéricos en Java funcionan con clases pero no con tipos primitivos? Por ejemplo, esto funciona bien: List<Integer> foo = new ArrayList<Integer>(); pero esto no está permitido: List<int> bar = new
Quiero crear una instancia de un tipo que especifique en un método genérico que tengo. Este tipo tiene varios constructores sobrecargados. Me gustaría poder pasar argumentos a los constructores, pero Activator.CreateInstance<T>() no ve tener esto como una opción. ¿Hay otra forma de...
Tengo una clase que quiero usar para almacenar "propiedades" para otra clase. Estas propiedades simplemente tienen un nombre y un valor. Idealmente, lo que me gustaría es poder agregar propiedades escritas , de modo que el "valor" devuelto sea siempre del tipo que quiero que sea. El tipo siempre...
Si BaseFruittiene un constructor que acepta un int weight, ¿puedo crear una instancia de una fruta en un método genérico como este? public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } Se agrega un ejemplo detrás...
Tengo un bucle foreach que lee una lista de objetos de un tipo y produce una lista de objetos de un tipo diferente. Me dijeron que una expresión lambda puede lograr el mismo resultado. var origList = List<OrigType>(); // assume populated var targetList = List<TargetType>();...