En groovy, est-il un moyen de vérifier si un objet possède une méthode donnée?
En supposant que j'ai un objet someObj
de type indéterminé, j'aimerais faire quelque chose comme:
def value = someObj.someMethod()
Où il n'y a aucune garantie que "someObj' implémente la someMethod()
méthode, et si ça ne marche pas, il suffit de retourner null
.
Est là quelque chose comme ça en Groovy, ou dois-je besoin d'envelopper dans une si-déclaration avec une instanceof
vérifier?
- Un autre moyen serait d'interate
.properties
par stackoverflow.com/questions/2585992/...
Vous devez vous connecter pour publier un commentaire.
Utilisation
respondsTo
Vous devriez être en mesure de faire quelque chose comme:
Ou vous pouvez revenir à la bonne vieille Java API reflection.
Mettre en œuvre methodMissing dans votre classe:
Et puis, à chaque fois que vous essayez d'appeler une méthode qui n'existe pas, vous obtiendrez une valeur null.
Pour plus d'informations, jetez un coup d'oeil ici: http://groovy.codehaus.org/Using+methodMissing+et+propertyMissing
Vous pouvez atteindre cet objectif en utilisant
getMetaMethod
avec la sécurité de la navigation de l'opérateur?.
:si la classe :
si l'objet :
De manière très concise, vous pouvez utiliser ceci: