java - 为 Multimap 的一个特定实例覆盖 toString()?

标签 java hashmap tostring

我有一个 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/

相关文章:

java - 将 MBean 从 JBoss 4.x 移植到 JBoss 7

java - 如何在 Java 中创建自定义列表模型

c++ - 包含图节点作为键的无序映射

java - ConcurrentHashMap foreach循环问题

javascript - Object.prototype.toString.call(arrayObj) 和 arrayObj.toString() 的区别

java - finish() 如何在 OnClick 事件中工作?

java - 如何比较字符串数组和字符数组

java - 如何使用比较器按值对 TreeMap 进行排序

Java Exception toString() inclusive 原因

scala - 特殊值的字符串表示