Les annotations des classe
amani
-
amani -
amani -
Bonjour,
j'ai des classe annotés par l'annotation "states" dans la classe "Test", pour récupérer les classes annotés j'ai placé dans la classe "busniss"le code suivant:
public static String GetAnnotatedClass(){
try
{
for(Class<?> classe:Test.class.getClasses())
{
if(classe.isAnnotationPresent(Test.states.class))
{
Test.states a1= (states) classe.getAnnotation(Test.states.class);
return a1.statesName();
}
}
return null;
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
return null;
}
}
ça me parait juste mais il me retounne un null prk?
j'ai des classe annotés par l'annotation "states" dans la classe "Test", pour récupérer les classes annotés j'ai placé dans la classe "busniss"le code suivant:
public static String GetAnnotatedClass(){
try
{
for(Class<?> classe:Test.class.getClasses())
{
if(classe.isAnnotationPresent(Test.states.class))
{
Test.states a1= (states) classe.getAnnotation(Test.states.class);
return a1.statesName();
}
}
return null;
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
return null;
}
}
ça me parait juste mais il me retounne un null prk?
A voir également:
- Les annotations des classe
- Classe ram - Guide
- Comment faire des annotations sur word - Guide
- Sti2d classe poubelle - Forum Programmation
- Bluetooth mercedes classe a - Forum Autoradio
- Retrouver la liste des élèves d'une classe - Forum Loisirs / Divertissements
2 réponses
Visiblement le programme ne rentre pas dans la boucle if, il faudrait rajouter un affichage pour savoir s'il rentre ou non dans la boucle for et un autre pour savoir ce qui se passe avec la annotations :
for(Class<?> classe : Test.class.getClasses())
{
System.out.println(classe);
System.out.println(classe.getAnnotations().length);
if (classe.isAnnotationPresent(Test.states.class))
{
Test.states a1= (states) classe.getAnnotation(Test.states.class);
return a1.statesName();
}
}
Une autre question svp
dans ma classe Test j'ai un ensemble des classes annotés (la question précédente) et dans chaque classe un ensemble des méthodes annotés je fait la même chose pour les méthodes, je veux trouver toutes les méthodes annotés: mais cela ne marche pas (même j'ai essayé de parcourir toutes les classes dans la classe Test puis toutes les méthodes de chaque classe mais la même chose ça retourne un null)
try
{
for (Method m : Test.class.getMethods())
{
if (m.isAnnotationPresent( Test.action.class))
{
Test.action a = m.getAnnotation(Test.action.class);
String s = a.actionName();
System.out.println(s);
actions.add(s);
}
}
}
dans ma classe Test j'ai un ensemble des classes annotés (la question précédente) et dans chaque classe un ensemble des méthodes annotés je fait la même chose pour les méthodes, je veux trouver toutes les méthodes annotés: mais cela ne marche pas (même j'ai essayé de parcourir toutes les classes dans la classe Test puis toutes les méthodes de chaque classe mais la même chose ça retourne un null)
try
{
for (Method m : Test.class.getMethods())
{
if (m.isAnnotationPresent( Test.action.class))
{
Test.action a = m.getAnnotation(Test.action.class);
String s = a.actionName();
System.out.println(s);
actions.add(s);
}
}
}
oui j'ai essayé cela (c sure que j'ai commis une faute )voilà:
for (Class<?> c : Test.class.getClasses())
for(Method m: c.getMethods())
{
if (m.isAnnotationPresent( Test.action.class))
{
Test.action a = m.getAnnotation(Test.action.class);
String s = a.actionName();
System.out.println(s);
actions.add(s);
}
for (Class<?> c : Test.class.getClasses())
for(Method m: c.getMethods())
{
if (m.isAnnotationPresent( Test.action.class))
{
Test.action a = m.getAnnotation(Test.action.class);
String s = a.actionName();
System.out.println(s);
actions.add(s);
}
je pense qu'il faut ajouter target: class ici:
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
nn?
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)