O construtor no-args padrão é obrigatório para o Gson?

Guia do usuário do Gson afirma que devemos definir o construtor no-args padrão para qualquer classe funcionar corretamente com o Gson. Ainda mais, nojavadoc no Gson'sInstanceCreator classe disse que a exceção será lançada se tentarmos desserializar a instância de classe ausente construtor padrão e nósdevemos usarInstanceCreator em tais casos. No entanto, tentei usar o Gson com a classe sem o construtor padrão e tanto a serialização quanto a desserialização funcionam sem nenhum problema.

Aqui está o pedaço de código para deserializaiton. Uma classe sem construtor não-args:

public class Mushroom {
    private String name;
    private double diameter;

    public Mushroom(String name, double diameter) {
        this.name = name;
        this.diameter = diameter;
    }

    //equals(), hashCode(), etc.
}

e um teste:

@Test
public void deserializeMushroom() {
    assertEquals(
            new Mushroom("Fly agaric", 4.0),
            new Gson().fromJson(
                    "{name:\"Fly agaric\", diameter:4.0}", Mushroom.class));
}

que funciona bem.

Então minha pergunta é:Eu poderia realmente usar Gson sem necessidade de ter construtor padrão ou há alguma circunstância quando não vai funcionar?