我遵循此解决方案无效:https://stackoverflow.com/a/1835742/666468
我正在尝试输出这张地图:
//protected Map<String,String> getImageTagAttributes()
Image image = new Image(resource);
for (Map<String, String> foo : image.getImageTagAttributes()) {
String key = foo.getKey();
String value = foo.getValue();
//output here
}
但是我收到了这个错误:只能迭代数组或java.lang.Iterable的实例
我也导入了 java.util.Iterator ,但没有运气。
P.S。我希望我可以安装和使用JSTL,但这不是我的电话。
答案 0 :(得分:2)
不知道你从哪里获得了Image
课程,但如果image.getImageTagAttributes()
返回Map<String, String>
,那么可能会这样尝试
Image image = new Image(resource);
Map<String, String> map = image.getImageTagAttributes();
for (Map.Entry<String,String> foo : map.entrySet()) {
String key = foo.getKey();
String value = foo.getValue();
//output here
}
答案 1 :(得分:0)
您无法为每个循环迭代Map。
获取地图对象键集,然后迭代它。
然后在for循环中尝试从地图中检索每个键的值。
答案 2 :(得分:0)
因为这不是迭代Map的正确方法:
Image image = new Image(resource);
Map<String, String> foo = image.getImageTagAttributes();
Set<String> key = foo.keyset();
for ( k : keys ) {
String value = foo.get(k);
//output here
}
或者你可以这样沟通:
Image image = new Image(resource);
Map<String, String> foo = image.getImageTagAttributes();
Set<Map.Entry<String,String>> entries = foo.entrySet();
for(Map.Entry<String, String> e : entries){
String key = e.getKey();
String value = e.getValue();
//output
}
在我的回答中,我认为image.getImageTagAttributes();
会返回Map<String,String>