Вы можете использовать asType
метод
def getAThing = FantasyClass.get(1)
assert getAThing.whichClass == String
assert 'thisIsAString'.getClass() == getAThing.someInfo.asType(getAThing.whichClass)
Вот более общий пример:
def value = 123
def otherThing = new FantasyClass(
someInfo: value.toString(),
whichClass: value.getClass()).save()
assert otherThing.someInfo.asType(getAThing.whichClass) instanceof Integer
И вы можете добавить вспомогательный метод к классу домена, который преобразует строку в указанный вами тип:
def getTypedValue() {
someInfo?.asType(foo)
}
и тогда вы можете сделать это:
assert otherThing.typedValue == 123