18 votes

Appel d'une méthode statique à l'aide d'un type générique

Aucun membre statique ne peut utiliser un paramètre de type, mais est-il possible d'appeler un membre statique en utilisant le paramètre de type générique ? Par exemple:-

abstract class Agent<A>{
    void callAgent();
    Agent(){
        A.add();                    
    }
}

Ici, add() est une méthode statique.

Il y a quelques questions et réponses en C# sur un sujet similaire mais je ne sais pas trop comment procéder en Java.

1voto

Alex Points 201

Vous pouvez utiliser la réflexion pour appeler une méthode statique de la classe T. Par exemple :

public Agent<T>{

    private final Class<T> clazz;

    public Agent(Class<T> clazz){
        this.clazz = clazz;
        executeAddMethodOfGenericClass();
    }

    public void executeAddMethodOfGenericClass() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        Method method = clazz.getMethod("add");
        method.invoke(null);
    }
}

Mais je peux obtenir une exception. Soyez prudent.

Prograide.com

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.

Powered by:

X