Основной вопрос: Какие операторы, свойства и т. Д. Можно использовать для определения типа переменных в Groovy?
Справочная информация:
У меня есть произвольно глубоко вложенная структура данных словаря. Это результат вызова request.JSON
в контроллере Grails. Сначала я хотел бы убедиться, что определенные ключи находятся в словаре, с соответствующими типами. Я хотел бы реализовать это путем создания прототипа структуры данных и определения метода для сравнения структур данных. Что-то вроде:
def prototype = [ username: "JennyJeans",
message: [ subject: "Hello World!",
body: "Will write soon."
]
]
Конечно, содержание строк здесь не имеет значения. Затем в своих действиях я проверяю так:
if(similarDataStructure(prototype, request.JSON)) {
// XXX
} else {
// report error
}
Итак, что делает метод similarDataStructure
? В псевдокоде:
def similarDataStructure(a, b) {
if(type(a) != type(b)) return false
if(type(a) == dictionary) {
for key in a:
if(!similarDataStructure(a[key], b[key])) return false
}
return true
}
Если вы можете придумать лучший способ глубокой проверки, дайте мне знать.