Chcę użyć wartości oczekiwanej właściwości lub określonej wartości domyślnej. Jak to osiągnąć w doskonałej formie? wyglądJak sprawdzić, czy obiekt ma określoną właściwość?
Miejmy na przykład:
def printName(object) {
//if object has initialized property 'name' - print 'name', otherwise print ToString
if (object<some code here>name && object.name) {
print object.name
} else {
print object
}
}
+1 Lepsze niż moje ... Nie powinienem był zaczynać od metaClass ;-) –
'' hasProperty' faktycznie zwraca [MetaProperty] (http://groovy.codehaus.org/api/groovy/lang/MetaProperty .html), więc możesz też zrobić coś takiego jak 'object.hasProperty (propName) ?. getProperty (object)?: defval' –
... i jest pewne niespójności w groovyDoc (groovy-2.4.7): _Description_ zaczyna się od '' 'Zwraca true do implementacji MetaClass ma właściwość o podanej nazwie ' '' _Returns_ oznacza "Znalezioną MetaProperty lub null, jeśli nie istnieje" ", która jest prawdą. –