在 Java 的 Dart 中,如何完成这个"为"?


  1. 这将是Java中任何类的"for">

抽象类

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);
} 
}

达特会是什么样子?

不完全确定您想要什么,但这里有一个简单的例子,说明如何在Dart:中为Map的每个循环创建一个

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'));
}

更新后更完整的例子:你可以这样做。我为ResponseRequestHttpException添加了空类,因为我看不到它们来自哪里:

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()}');
}
}
}
}

最新更新