12
votes

Code de fermeture de chargement de la chaîne dans Groovy

est-il possible de charger le code d'une fermeture d'une chaîne (pouvant provenir d'un fichier) à Groovy?


2 commentaires

Si vous cherchez simplement à évaluer une chaîne (la question est un peu vague), c'est très similaire à Stackoverflow.com/Questtions/3264014/...


Plusieurs solutions que vous pouvez trouver ici: Stackoverflow.com/questions/36771508/...


3 Réponses :


-1
votes

Si vous voulez dire quelque chose comme: xxx

n °.

Cependant, il semble être évalué () peut être une option dans ce cas: http: //groovy.329449.n5.nébateux .com / création-fermeture-from-string-instance-td343089.html


0 commentaires

1
votes

Cela devrait fonctionner, pas sûr s'il s'agit de la solution la plus élégante:

ClassLoader parent = getClass().getClassLoader()
GroovyClassLoader loader = new GroovyClassLoader(parent)
Class groovyClass = loader.parseClass("class ClosureHolder {def closures = [{ println 'hello world!' }]}")
def allTheClosures = groovyClass.newInstance()

allTheClosures.closures.each {
    it()
}


0 commentaires

16
votes

Avez-vous voulu dire quelque chose comme ça? XXX


0 commentaires