Groovy / Grails - Как получить экземпляр класса от Строки?

Я пытаюсь получить экземпляр класса отличного класса с названия строки.

Например, я хотел бы сделать некоторый код вдоль этих строк:

def domainName

domainName = "Patient"

// but following line doesn't work, domainName is a String
def domainInstance = domainName.get(1);  
11
задан Nix 12 March 2013 в 21:17
поделиться

3 ответа

Способом Грааля было бы использование GrailsApplication#getArtefact. Например,

def domainInstance = grailsApplication.getArtefact("Domain",domainName)?.
        getClazz()?.get(1)

Преимущество такого способа по сравнению с Class.forName заключается в том, что если нет класса домена с таким именем, то getArtefact просто возвращает ноль вместо того, чтобы бросать исключение.

23
ответ дан 3 December 2019 в 05:12
поделиться

Это будет работать:

   Class.forName("Patient",  false, Thread.currentThread().contextClassLoader).get(1)
2
ответ дан 3 December 2019 в 05:12
поделиться

Ну,

  1. Попробуйте реализовать свой код с помощью пакетов

  2. Попробуйте этот код: я не знаю, будет ли он работать хорошо?

def domainInstance = class.forname ( «Пациент»). NewinStance ()

-3
ответ дан 3 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: