Я имею в виду следующий пост SOW и ответ Стюарта Росситера.
Я подумал, что было бы правильно открыть новую тему по этому поводу, так как спустя столько лет на проблему можно посмотреть немного по-другому. Теперь я получаю следующую ошибку: «Метод create_ShiftChange(double, TimeUnits) в типе Main неприменим для аргументов (int, Integer)».
Как я отметил в своем комментарии к решению Стюарта Росситера, я считаю, что несколько лет назад у функции create_ShiftChange(...)
были другие входные аргументы.
Актерский состав от getTimeoutToNextValue()
до double
не проблема. Однако состав второго аргумента getNextValue()
от Integer
до TimeUnits
ставит передо мной задачу.
У кого-нибудь есть решение моей проблемы или надо искать обходной путь, так как "старый" create_ShiftChange(...)
тоже имеет другое значение из-за других входных аргументов? Спасибо за помощь!
Вам просто нужно ввести TimeUnits.
(обратите внимание на точку!), а затем использовать завершение кода. Это показывает вам все доступные варианты, выберите тот, который вам нужен.
Предыстория: это перечисление, определенное AnyLogic для использования в качестве единиц времени. Когда вы видите что-то подобное, всегда печатайте это и пробуйте завершение кода.
Не было изменений в функциях (методах) create_*
для динамических событий. Есть две формы:
Тот, в котором вы явно указываете единицы времени, когда оно должно быть запланировано (например, с двумя начальными аргументами типа double
и TimeUnits
). TimeUnits
— это перечисление Java (фактически то же, что и список параметров AnyLogic) со значениями, такими как TimeUnits.MINUTE
; автозаполнение покажет вам альтернативы.
Тот, в котором вы неявно принимаете единицы времени модели в целом, как в ее свойствах (например, с 1 начальным аргументом типа double
).
Рассматриваемое динамическое событие имеет один аргумент int
(т. е. его «специфические» данные содержат только целое число), поэтому соответствующие варианты функции create_*
имеют его в качестве последнего аргумента (т. е. у них есть 3 и 2 аргумента соответственно).
В вашем случае вы не используете динамическое событие с одним аргументом (иначе метод create_ShiftChange(double, TimeUnits)
, на который он жалуется, не существовал бы — вместо этого был бы create_ShiftChange(double, TimeUnits, int)
) и, поскольку вы вызвали его с двумя целыми числами, компилятор (неправильно ) предполагает, что вы пытались использовать форму с двумя аргументами, отсюда и сообщение об ошибке.
Поэтому либо добавьте аргумент к динамическому событию, либо, если в вашем случае вы используете другой набор аргументов (или без аргументов) для динамического события, измените его соответствующим образом.
Это не (главная) проблема; посмотрите на другой вопрос и рассматриваемые сигнатуры методов.