Je suis en train de faire ce qui suit en Java:implémentation Java dynamique de la méthode abstraite
j'ai une collection de chaînes (ne importe où entre 1 et 10 000), chaque chaîne contient un corps de méthode différente (ils sont écrits en Java) pour la même méthode abstraite d'une classe. Par exemple:
string1= "int a=1;"
string2="System.out.println(\"HelloWorld\");"
...
chacun de la chaîne pourrait être une mise en œuvre de la méthode abstraite suivante:
abstract class FOO{
public abstract void doSomething();
}
Pour chaque chaîne, je voudrais créer une instance de FOO à utiliser.
Je ne suis pas tout à fait sûr quelle est la meilleure façon d'aller: Je l'ai cherché sur le web et est venu avec ces suggestions:
- Utilisez l'API du compilateur Java 6 pour générer un fichier .class et charger les
- utiliser une bibliothèque de manipulation de bytecode comme cglib, de modifier le code de compilation
y at-il d'autres suggestions, car ceux-ci ont l'air un peu compliqué (au moins à moi-même) ...
Merci pour votre aide
Edit:
Je vais peut-être la mauvaise façon de mon problème. Voici ce que je suis en fin de compte essayer d'atteindre:
J'ai une interface représentant un noeud dans un arbre
public interface Node{
public <T> void process(T input);
/* ... d'autres méthodes ne sont pas liés à mon problème ... */ }
Lorsque vous fournissez une instance de T au noeud, il fait quelque chose (certains peuvent avoir besoin d'accéder à d'autres méthodes de noeud), et le transmet aux noeuds enfants.
Le problème est (la spécification pour le programme): le programme lit et construit les nœuds à partir de fichiers texte, y compris ce corps de la méthode (les corps sont en java). Il construit ensuite l'arbre et le renvoie.
J'ai l'impression que pour ce faire, je dois générer une implémentation de Node pour chacune des méthodes fournies dans le fichier texte. Je peux me tromper bien, et il pourrait y avoir une meilleure façon ...
Il existe d'autres, ** mo mo re compliqué ** options. Java n'est pas un langage interprété, donc cela ne peut pas être fait facilement. –
Pourquoi avez-vous jusqu'à 10 000 corps de méthode sous forme de texte? Pourquoi ne pas les avoir comme code compilé? –
Cela peut être une question légitime, mais ** ... Je pense que le vrai problème se produit dans la timeline quelque part avant l'origine de la "collection de chaînes" contenant du code. – phineas