Annotation Interface Since


@Documented @Retention(RUNTIME) @Target({FIELD,TYPE}) public @interface Since
An annotation that indicates the version number since a member or a type has been present. This annotation is useful to manage versioning of your Json classes for a web-service.

This annotation has no effect unless you build Gson with a GsonBuilder and invoke GsonBuilder.setVersion(double) method.

Here is an example of how this annotation is meant to be used:

 public class User {
   private String firstName;
   private String lastName;
   @Since(1.0) private String emailAddress;
   @Since(1.0) private String password;
   @Since(1.1) private Address address;
 }
 

If you created Gson with new Gson(), the toJson() and fromJson() methods will use all the fields for serialization and deserialization. However, if you created Gson with Gson gson = new GsonBuilder().setVersion(1.0).create() then the toJson() and fromJson() methods of Gson will exclude the address field since it's version number is set to 1.1.

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    double
    the value indicating a version number since this member or type has been present.
  • Element Details

    • value

      double value
      the value indicating a version number since this member or type has been present.