Я пытаюсь получить экземпляр класса отличного класса с названия строки.
Например, я хотел бы сделать некоторый код вдоль этих строк:
def domainName
domainName = "Patient"
// but following line doesn't work, domainName is a String
def domainInstance = domainName.get(1);
Способом Грааля было бы использование GrailsApplication#getArtefact. Например,
def domainInstance = grailsApplication.getArtefact("Domain",domainName)?.
getClazz()?.get(1)
Преимущество такого способа по сравнению с Class.forName
заключается в том, что если нет класса домена с таким именем, то getArtefact
просто возвращает ноль вместо того, чтобы бросать исключение.
Это будет работать:
Class.forName("Patient", false, Thread.currentThread().contextClassLoader).get(1)
Ну,
Попробуйте реализовать свой код с помощью пакетов
Попробуйте этот код: я не знаю, будет ли он работать хорошо?
def domainInstance = class.forname ( «Пациент»). NewinStance ()