2017 groovy 2.4.x, :
A.metaClass.getMetaProperty('x') != null
, , , ( ), (, java). MetaProperty , . , , . , , .
, , .
sudhir, , , getDeclaredFields , , , getter setter. , grails. , .
SteveD . , "" .
, :
def hasProperty = { Class c, String propertyName ->
if (!propertyName)
return false;
String p2 = propertyName.substring(0, 1).toUpperCase()
if (propertyName.length()> 1)
p2 += propertyName.substring(1)
return c.declaredFields.find {
it.name == propertyName
} || c.declaredMethods.find {
it.name == ('get' + p2)
} || c.declaredMethods.find {
it.name == ('is' + p2)
} || c.declaredMethods.find {
it.name == ('set' + p2)
}
}
, , ( java.lang.reflect.Modifier.isStatic uncomment isStatic ). , .