- 这将是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'));
}
更新后更完整的例子:你可以这样做。我为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()}');
}
}
}
}