Question

J'ai un projet Java qui a besoin d'une interface "addon". Je pensais à charger une sorte de fichiers de classe ayant des méthodes par défaut comme initialize() et shutdown() qui sera appelée après la classe a été chargée dans l'application. Est-ce la façon de le faire? Comment pourrais-je aborder ce problème?

Était-ce utile?

La solution

Jetez un oeil à la classe classe, en particulier le

Autres conseils

D'abord, vous aurez besoin d'un ClassLoader ; vous pouvez obtenir l'actuel avec getClass().getClassLoader(), mais vos classes addon devez être dans le classpath. Vous aurez probablement envie de créer un classloader personnalisé qui recherche votre répertoire addon.

Une fois que vous avez le ClassLoader, vous pouvez l'utiliser pour charger une classe. Cela vous donne un objet Class ; vous pouvez alors utiliser la réflexion pour appeler la méthode initialize() si elle est présente.

Si vous regardez quelque chose de plus sophistiqué, vous pouvez essayer: http://jpf.sourceforge.net .

... JPF prévoit un moteur d'exécution qui découvre dynamiquement et charges « plug-ins » plug-in .Un est un élément structuré qui se décrit à l'aide d'un JPF « manifeste ». ...

Une autre façon agréable de réaliser Addons est java. util.Serviceloader . Jetez un oeil sur les javadocs, ils expliquent le principe.

public class SomeClass { 
    static {
        System.out.println("Being called with the class is loaded");
        initialize();
    }
    static void initialize(){}
}

Est-ce que votre question?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top