J'ai une classe abstraite contenant la méthode run() et quelques classes enfants remplaçant la méthode run avec une implémentation différente. Il existe également une classe d'annotation personnalisée, chaque classe enfant a cette annotation avec une valeur différente pour distinguer chaque classe enfant. Je devais appeler cette méthode d'exécution pour chaque classe enfant à partir de l'objet de classe abstraite en utilisant ces annotations sans utiliser de nom de classe enfant. Est-il possible ou existe-t-il un autre moyen de le faire?Appel d'une méthode enfant particulière à partir d'une classe abstraite à l'aide d'annotations personnalisées
CODE EST ICI -------
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CustomAnno {
public String name();
}
public abstract class AbstractClass {
abstract void run();
}
@CustomAnno(name="one")
public class ExtendingClassOne extends AbstractClass {
@Override
void run() {
System.out.println("class one extending");
}
}
@CustomAnno(name="two")
public class ExtendingClassTwo extends AbstractClass {
@Override
void run() {
System.out.println("class two extending");
}
}
Donc, avoir une classe abstraite et les valeurs annotation « un » et « deux », puis-je appeler la méthode courir pour chaque classe enfant sans utiliser le nom de classe enfant .
Je n'ai pas compris votre question complètement. Mais vous attendez quelque chose comme ça? 'AbstractClass child1 = \\ instance de ExtendingClassOne; child1.run(); AbstractClass child2 = \\ instance de ExtendingClassTwo; child2.run(); 'Pouvez-vous donner un exemple? – prasanth
Merci pour votre réponse mec. Ici, pour appeler la méthode run de la classe enfant, nous devons l'initialiser avec son Object. Je souhaite appeler la classe enfant à l'aide des annotations et de la classe Résumé uniquement. Quelque chose comme, nous pourrions charger toutes les annotations avec leurs classes enfants à l'exécution. L'avez-vous eu maintenant? –
Ouais. Je peux comprendre. – prasanth