10000 Release Gson 2.13.0 · google/gson · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Gson 2.13.0

Compare
Choose a tag to compare
@eamonnmcmanus eamonnmcmanus released this 11 Apr 15:26
· 14 commits to main since this release

What's Changed

  • A bug in deserializing collections has been fixed. Previously, if you did something like this:

    gson.fromJson(jsonString, new TypeToken<ImmutableList<String>>() {})
    

    then the inferred type would be ImmutableList<String>, but Gson actually gave you an ArrayList<String>. Usually that would lead to an immediate ClassCastException, but in some circumstances the code might sometimes succeed despite the wrong type. Now you will see an exception like this:

    com.google.gson.JsonIOException: Abstract classes can't be instantiated!
    Adjust the R8 configuration or register an InstanceCreator or a TypeAdapter for this type.
    Class name: com.google.common.collect.ImmutableList
    

    because Gson now really is trying to create an ImmutableList through its constructor, but that isn't possible.
    Either change the requested type (in the TypeToken) to List<String>, or register a TypeAdapter or JsonDeserializer for ImmutableList.

  • The internal classes $Gson$Types and $Gson$Preconditions have been renamed to remove the $ characters. Since these are internal classes (as signaled not only by the package name but by the $ characters), client code should not be affected. If your code was depending on these classes then we suggest making a copy of the class (subject to the license) rather than depending on the new names.

Full Changelog: gson-parent-2.12.1...gson-parent-2.13.0

0