我希望将 lambda 添加到队列中,以便在轮询队列时运行,使用将它们添加到队列时传递给它们的参数。像下面这样的东西:
@FunctionalInterface
public interface Movement {
Deque<Movement> movementDeque = new ArrayDeque<>();
void move(MovementType type);
}
...
public void addToQueue(Direction direction){
MovementType type = switch (direction) {
case LEFT -> MovementType.TURN_LEFT;
case RIGHT -> MovementType.TURN_RIGHT;
case UP -> MovementType.FORWARD;
case DOWN -> MovementType.BACKWARD;
}
Movement.movementDeque.offer((m) -> subject.move(type));
}
...
Movement.movementDeque.poll(); // Running the lambda later
这可能吗?到目前为止,我所做的一切似乎都不允许我使用在定义它们时传递给它们的参数来调用 lambda。感觉我在这里误解了一些非常基本的东西。