Как бы это «за» было сделано в Java в Дартс? - PullRequest
0 голосов
/ 30 апреля 2020
  1. Это будет 'for' в Java любого класса

Абстрактных классов

abstract class ResourceRequester
{
    Response run(Request paramRequest);
}

abstract class QueueStorage<Element>
{
    bool isEmpty();
    void add(Element paramElement);
    Map<int, Element> get();
    void dequeue(int paramInteger);
    int size();
}

и других классов

ResourceRequester requester; 
QueueStorage<Request> queue;

for (Map.Entry<Integer, Request> entry : (Iterable<Map.Entry<Integer, Request>>)this.queue.get().entrySet()) {
    try {
        this.requester.run(entry.getValue());
        this.queue.dequeue(entry.getKey());
    } catch (HttpException e) {
        this.logger.info("Failed to flush", (Throwable)e);
    } 
}

Как бы это было на Дарт?

1 Ответ

0 голосов
/ 30 апреля 2020

Не совсем уверен, что вы хотите, но вот простой пример того, как вы можете сделать для каждого l oop карты в дротике:

void main() {
  Map<int, String> queue = {1: 'one', 2: 'two'};

  for (final entry in queue.entries) {
    final key = entry.key;
    final value = entry.value;

    print('Key: $key Value: $value');
  }
}

Если код более прост ( как мой пример) то же самое можно сделать с помощью метода forEach на карте:

void main() {
  Map<int, String> queue = {1: 'one', 2: 'two'};
  queue.forEach((key, value) => print('Key: $key Value: $value'));
}

Обновить после более полного примера: Вы можете сделать это как. Я добавил пустые классы для Response, Request и HttpException, так как не вижу, откуда они берутся:

class Response {}
class Request {}
class HttpException {}

abstract class ResourceRequester {
  Response run(Request paramRequest);
}

abstract class QueueStorage<T> {
  bool isEmpty();
  void add(T paramElement);
  Map<int, T> get();
  void dequeue(int paramInteger);
  int size();
}

class OtherClass {
  ResourceRequester requester;
  QueueStorage<Request> queue;

  void someMethod() {
    for (final entry in this.queue.get().entries) {
      try {
        this.requester.run(entry.value);
        this.queue.dequeue(entry.key);
      } on HttpException catch (ex) {
        print('Failed to flush: ${ex.toString()}');
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...