Как представить строку, полученную из базы данных модели AnyLogic, в виде имени переменной?

Я строю AnyLogic-модель большого хранилища (например, контейнерного терминала), которое имеет сотни мест хранения в нескольких областях. Сохраняемые элементы укладываются поверх каждого, и их необходимо извлекать в режиме LIFO. Модель загружает текущие запасы при запуске как совокупность агентов, включая параметр, определяющий местоположение каждого агента.

Модель также имеет таблицу базы данных, которая связывает уникальное имя каждого местоположения (строковое значение) с имя объекта очереди, представляющим местоположение в модели. При запуске модели необходимо создать коллекцию (LinkedHashMap), которая будет сопоставлять имя местоположения (ключ) (строка) с именем очереди (значение). Однако, поскольку база данных хранит значения в виде строк, мне нужно преобразовать значение имени очереди, полученное из запроса к базе данных (строка), в объект имя переменной.

Вот пример оскорбительной функции. Вы заметите, что вторая строка цикла for пытается заполнить переменную q (Queue) значением из столбца «loc_q» в базе данных (String). Конечно, это приводит к ошибке несоответствия типов. Как преобразовать значение String в имя очереди?

 Queue q = null;
 String str = null;

 List<Tuple> s = selectFrom(storage_locations)
    .orderBy(storage_locations.loc_id.asc())
    .list(storage_locations.loc_id, storage_locations.loc_q);

 for (Tuple sl : s) {
     str = sl.get(storage_locations.loc_id);
     q = sl.get(storage_locations.loc_q);
     colMapQ.put(str, q);
 }

Признаюсь, я не гуру Java, поэтому я, вероятно, пропустил здесь базовый шаг. Я потратил 3 дня на поиск переполнения стека и gitHub без особого успеха. Кто-нибудь сталкивался с этой проблемой раньше? Я был бы признателен за вашу помощь.

Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
0
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете. Вам нужно сделать это самостоятельно, создав функцию сопоставления, которая возвращает объект Queue, соответствующий заданному имени строки.

Выберите все объекты очереди в вашей модели, щелкните один из них правой кнопкой мыши и создайте коллекцию из них всех.

Теперь напишите функцию, которая перебирает все записи и возвращает элемент Queue, который имеет то же имя, что и ваш ввод, что-то вроде

for (Queue currentQueue : collectionOfAllQueues) {
    if (currentQueue.getName().equals(requiredDbaseName){
        return currentQueue;
    }
}

Другие вопросы по теме