dur*_*597 3 java performance multimap gson guava
我正在使用Gson和Guava.我有一个我想序列化的类,看起来像这样的sscce
import com.google.common.collect.Multimap;
public class FooManager {
private Multimap<String, Foo> managedFoos;
// other stuff
}
Run Code Online (Sandbox Code Playgroud)
Gson不知道如何序列化.所以我这样做了:
public final class FoomapSerializer implements
JsonSerializer<Multimap<String, Foo>> {
@SuppressWarnings("serial")
private static final Type t =
new TypeToken<Map<String, Collection<Foo>>>() {}.getType();
@Override
public JsonElement serialize(Multimap<String, Foo> arg0, Type arg1,
JsonSerializationContext arg2) {
return arg2.serialize(arg0.asMap(), t);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我担心.asMap()一遍又一遍地打电话会很慢,即使潜在的Map事情很少发生变化.(Foo对象的序列化将经常更改,但映射本身不会在初始化之后).有没有更好的办法?