Java 为多重映射的一个特定实例重写toString()?
我有一个ListMultimap Guava的实例,它由嵌套的HashMaps和相当复杂的对象组成——在打印HashMap时,有没有办法更改此实例的toString以自定义控制台输出?或者是生成一个新类(它是HashMap类的扩展)并重写toString方法的唯一方法,如下所示:Java 为多重映射的一个特定实例重写toString()?,java,hashmap,tostring,Java,Hashmap,Tostring,我有一个ListMultimap Guava的实例,它由嵌套的HashMaps和相当复杂的对象组成——在打印HashMap时,有没有办法更改此实例的toString以自定义控制台输出?或者是生成一个新类(它是HashMap类的扩展)并重写toString方法的唯一方法,如下所示: class CustomizedListMultiMap extends ListMultiMap<myComplexDatatypeOne, myComplexDatatypeTwo> { //
class CustomizedListMultiMap extends ListMultiMap<myComplexDatatypeOne, myComplexDatatypeTwo> {
// overwriting toString
public String toString() {
// my custom implementation
}
}
ListMultimap<datatypeOne, datatypeTwo> map = ArrayListMultimap.create();
多重映射的实例化如下所示:
class CustomizedListMultiMap extends ListMultiMap<myComplexDatatypeOne, myComplexDatatypeTwo> {
// overwriting toString
public String toString() {
// my custom implementation
}
}
ListMultimap<datatypeOne, datatypeTwo> map = ArrayListMultimap.create();
所以我认为第一个答案不适用?谢谢。匿名课程怎么样:
Map<X, Y> map = new HashMap<X, Y>() {
@Override
public String toString() {
// toString implementation here
}
};
匿名类怎么样:
Map<X, Y> map = new HashMap<X, Y>() {
@Override
public String toString() {
// toString implementation here
}
};
您必须重写自定义类customizedHashMap中的toString方法。不能仅为类的一个实例自定义toString方法
我建议您使用首字母大写的类名 您必须重写自定义类customizedHashMap中的toString方法。不能仅为类的一个实例自定义toString方法
我建议您使用首字母大写的类名 我的印象是您有一个ListMultimap,您希望以类似于{a=[1,2,3]}的格式打印出来,与列表的长度相对应 最简单的方法可能是
Multimaps.transformValues(multimap, new Function<List<Bar>, Integer>() {
public Integer apply(List<Bar> list) {
return list.size();
}
}).toString();
我的印象是你有一个ListMultimap,你想把它打印成{a=[1,2,3]}格式,对应于列表的长度 最简单的方法可能是
Multimaps.transformValues(multimap, new Function<List<Bar>, Integer>() {
public Integer apply(List<Bar> list) {
return list.size();
}
}).toString();
哦,等等,谢谢你的回复,但我意识到我的地图类型实际上是一个多重地图,来自Guava图书馆。现在就编辑OP,我道歉@RyanYu你应该能够运用同样的想法。@arshajii:不,你不应该;多重映射的实现是最终的。Hmmmm,该项是用create方法实例化的,但不是正确的构造函数?@LouisWasserman哦,我不知道。我添加了另一个建议。哦,等等,谢谢你的回复,但我意识到我的地图类型实际上是一个来自Guava图书馆的多重地图。现在就编辑OP,我道歉@RyanYu你应该能够运用同样的想法。@arshajii:不,你不应该;多重映射的实现是最终的。Hmmmm,该项是用create方法实例化的,但不是正确的构造函数?@LouisWasserman哦,我不知道。我添加了另一个建议。您试图在元素类型的toString上而不是集合类型上进行哪些定制是您无法做到的?嗯,ListMultimap的值本身就是列表;我想知道这些值的长度。等等,澄清一下:你有ListMultimap还是ListMultimap?如果是前者,那么只需multimap.keys.toString就可以满足您的需要。后者!你能提出你以前的评论吗?哈哈在元素类型的toString上,而不是集合类型上,您试图做哪些定制是您不能做的?嗯,ListMultimap的值是列表本身;我想知道这些值的长度。等等,澄清一下:你有ListMultimap还是ListMultimap?如果是前者,那么只需multimap.keys.toString就可以满足您的需要。后者!你能提出你以前的评论吗?哈哈