您无法配置标志,因此您基本上需要重新实现该HashMap.toString()
方法.
查看toString()
in 的源代码AbstractMap
:
public String toString() { Iterator> i = entrySet().iterator(); if (! i.hasNext()) return "{}"; StringBuilder sb = new StringBuilder(); sb.append('{'); for (;;) { Entry e = i.next(); K key = e.getKey(); V value = e.getValue(); sb.append(key == this ? "(this Map)" : key); sb.append('='); sb.append(value == this ? "(this Map)" : value); if (! i.hasNext()) return sb.append('}').toString(); sb.append(", "); } }
我们希望,它应该是很容易看到如何在改变从=
到:
.你还需要使这个方法成为a Map, ?>
,并使用对该映射的引用而不是this
:
public static String toStringWithColon(Map, ?> map) { // ... }