Я хочу динамически добавлять каждый Rect angular Node из моей сети в конкретную коллекцию при запуске моделирования. Я делаю это, потому что у меня будет более 1000 узлов, и добавление их вручную нежелательно.
Каждый из этих узлов назван в соответствии с соглашением и начинается с «полосы» или «сетки».
Если это «дорожка», то она добавляется к одной коллекции, а «сетка» - к другой.
В настоящее время я использую код:
for (Node n : network.nodes()) {
String layoutIdentifier = n.getName().split("_")[0];
if (layoutIdentifier.equals("lane")) {
laneNodes.add(n);
traceln(n);
//Lane newLane = add_lanes(n);
} else if (layoutIdentifier.equals("grid")) {
gridNodes.add(n);
}
}
Это работает нормально и добавляет их в коллекции как узлы, но я действительно хотел добавить их в коллекции узлов Rect angular (каковы они есть), поскольку мне нужно использовать этот тип в моих агентах.
Я пробовал этот код (изменение Node на RectangularNode):
for (RectangularNode n : network.nodes()) {
String layoutIdentifier = n.getName().split("_")[0];
if (layoutIdentifier.equals("lane")) {
laneNodes.add(n);
traceln(n);
//Lane newLane = add_lanes(n);
} else if (layoutIdentifier.equals("grid")) {
gridNodes.add(n);
}
}
, но появляется ошибка Несоответствие типов: невозможно преобразовать из типа элемента Node в RectangularNode. Местоположение: pbl_congestion_simulation / Main - Тип агента
Есть ли способ преобразовать узел в RectangularNode? Или лучший способ пройти через все узлы в сети и добавить их как узлы Rect angular в их коллекции?
Я вижу, что узлы обозначаются как com.anylogi c .engine.markup. RectangularNode@293cc7d0 поэтому надеялся, что часть RectangularNode будет доступна.
большое спасибо.