Why can't I create multiple GsonBuilder and register different type adapters for each one?
<p>I was using the Retrofit library in conjunction with Gson, and tried this initially:</p>

<pre><code>    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Dog.class, new Dog.Deserializer());
    Gson dogGson = builder.create();

    builder = new GsonBuilder();
    builder.registerTypeAdapter(Cat.class, new Cat.Deserializer());
    Gson catGson = builder.create();

    builder = new GsonBuilder();
    builder.registerTypeAdapter(Owl.class, new Owl.Deserializer());
    Gson owlGson = builder.create();


    Retrofit client = new Retrofit.Builder()
            .baseUrl(buildType.apiEndpoint)
            .addConverterFactory(new StringConverterFactory())
            .addConverterFactory(GsonConverterFactory.create(dogGson))
            .addConverterFactory(GsonConverterFactory.create(catGson))
            .addConverterFactory(GsonConverterFactory.create(owlGson))
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .client(okHttpClient)
            .build();
</code></pre>

<p>But the deserializers for <code>Cat</code> and <code>Owl</code> didn't work, only <code>Dog</code>'s deserializer was properly getting called. After tinkering around, I tried this: </p>

<pre><code>    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Dog.class, new Dog.Deserializer());
    builder.registerTypeAdapter(Cat.class, new Cat.Deserializer());
    builder.registerTypeAdapter(Owl.class, new Owl.Deserializer());
    Gson deserializerGson = builder.create();


    Retrofit client = new Retrofit.Builder()
            .baseUrl(buildType.apiEndpoint)
            .addConverterFactory(new StringConverterFactory())
            .addConverterFactory(GsonConverterFactory.create(deserializerGson))
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .client(okHttpClient)
            .build();
</code></pre>

<p>That worked but left me baffled as to why the first way wasn't working. Can I not create multiple <code>GsonBuilder</code>s? What's going on here?</p>