У меня есть десятки фрагментов JSON для синтаксического анализа, и для каждого из них мне нужно получить экземпляр правильного синтаксического анализатора. Моя идея состояла в том, чтобы создать конфигурационный файл, в котором нужно записать имя класса для создания экземпляра для каждого парсера (своего рода парсер URL-адреса карты). Возвращаясь к вашему решению, я не могу вызвать метод, который я реализовал в каждом парсере, если у меня есть указатель на Any. Я полагаю, что это очень распространенная проблема с хорошо продуманным решением, но я понятия не имею, какие могут быть лучшие методы.Scala v 2.10: Как получить новый экземпляр класса (объекта), начинающегося с имени класса
У меня действительно нет опыта работы с Java, Reflection, Class Загрузка и все такое. Итак, может ли кто-нибудь написать мне тело метода ниже? Мне нужно, чтобы получить экземпляр класса, переданного в качестве строки (аргументы не нужны для конструктора, по крайней мере, до сих пор ...)
def createInstance(clazzName: String) = {
// get the Class for the given clazzName, e.g. "net.my.BeautifulClazz"
// instantiate an object and return it
}
Спасибо, как обычно ...
Спасибо, за ответ. Ну, у меня есть кое-что, чтобы сказать о том, что вы предлагаете. Я нашел решение, которое вы разместили, и мне нужно отбросить его от Any до определенного объекта, который я разработал. Я только что добавил краткое объяснение того, что я пытаюсь сделать в своем оригинальном посте. Еще раз спасибо за вопрос. – Max
Хорошо, я просто понял, что могу достичь своей цели, используя простой шаблон Factory: не нужно для загрузки классов или таких. Еще раз спасибо. – Max