J'ai une classe de modèle comme suit :
class MyClass<T>
{
T field;
public void myMethod()
{
field = new T(); // gives compiler error
}
}
Comment puis-je créer une nouvelle instance de T dans ma classe ?
J'ai une classe de modèle comme suit :
class MyClass<T>
{
T field;
public void myMethod()
{
field = new T(); // gives compiler error
}
}
Comment puis-je créer une nouvelle instance de T dans ma classe ?
Cela peut être plus lourd que ce que vous cherchez, mais cela fonctionnera également. Notez que si vous adoptez cette approche, il serait plus logique d'injecter l'usine dans MyClass lorsqu'elle est construite au lieu de la passer dans votre méthode chaque fois qu'elle est appelée.
interface MyFactory<T>
{
T newObject();
}
class MyClass<T>
{
T field;
public void myMethod(MyFactory<T> factory)
{
field = factory.newObject()
}
}
Si vous êtes prêt à sous-classer, vous pouvez également éviter l'effacement, consultez http://www.artima.com/weblogs/viewpost.jsp?thread=208860
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.