我有一个 ListMultimap (Guava) 的实例,它由嵌套的 HashMap 和相当复杂的对象组成——有什么方法可以更改此实例的 toString() 以在打印 HashMap 时自定义控制台输出?或者是唯一的方法是创建一个新的类,它是 HashMap 类的扩展,并重写 toString() 方法如下:
class CustomizedListMultiMap extends ListMultiMap<myComplexDatatypeOne, myComplexDatatypeTwo> {
// overwriting toString
public String toString() {
// my custom implementation
}
}
Multimaps实例化如下:
ListMultimap<datatypeOne, datatypeTwo> map = ArrayListMultimap.create();
所以我认为第一个答案不适用? (不过谢谢。)
最佳答案
匿名类怎么样:
Map<X, Y> map = new HashMap<X, Y>() {
@Override
public String toString() {
// toString implementation here
}
};
编辑: 看起来您想使用 final
类来执行此操作。相反,我建议编写一个单独的 static toString
方法并调用它,而不是以某种方式尝试将其添加到类本身:
public static String mapToString(Map<X, Y> map) {
// toString implementation here
}
关于java - 为 Multimap 的一个特定实例覆盖 toString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241319/