<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Gson `@Since` – 版本支持 > 原文: [https://howtodoinjava.com/gson/gson-since-version-support/](https://howtodoinjava.com/gson/gson-since-version-support/) 隨著應用隨時間變化,模型類也會隨之變化。 有時這些變化可能會打破例如,添加/刪除字段等 所有此類更改都可以使用`@Since`注解進行標記,以跟蹤模型類,以便在這些系統使用反序列化 JSON 數據進行交談時,與其他系統的應用集成不會中斷。 ## 1\. Gson `@Since`注解 在 [Gson](https://howtodoinjava.com/learningpaths/gson/) 中,可以通過使用`@Since`注解來維護同一對象的多個版本。 可以在類,字段以及將來的方法中使用此注解。 它采用單個參數 – `ignoreVersionsAfter`。 當我們用版本號`'M.N'`配置`Gson`實例時,所有標記有**版本大于`M.N`的類字段將被忽略**。 例如,如果我們將 Gson 配置為版本號`'1.2'`,則所有版本號更大的字段(例如 1.3、1.4…)都將被忽略。 ```java @Since(1.2) private String email; ``` ## 2\. Gson 版本支持 讓我們創建并運行一個示例,以詳細了解 Gson 中的版本控制支持。 #### 2.1 如何使用`@Since`注解編寫版本化的類 在`Employee`類下面,我們對三個字段進行了版本控制,即`firstName`,`lastName`和`email`。 ```java public class Employee { private Integer id; @Since(1.0) private String firstName; @Since(1.1) private String lastName; @Since(1.2) private String email; } ``` #### 2.2 創建具有版本支持的 Gson 實例 要創建將使用`@Since`注解的`Gson`實例,請使用`GsonBuilder.setVersion()`方法。 ```java Gson gson = new GsonBuilder() .setVersion(1.1) .create(); ``` ## 3.演示 `@Since`注解*會影響*的序列化和反序列化,因此請務必謹慎使用。 #### 3.1 具有版本支持的序列化 將版本號為`1.1`的上方`Employee`對象序列化。 ```java Employee employeeObj = new Employee(1, "Lokesh", "Gupta", "howtogoinjava@gmail.com"); Gson gson = new GsonBuilder() .setVersion(1.1) .setPrettyPrinting() .create(); System.out.println(gson.toJson(employeeObj)); ``` ```java { "id": 1, "firstName": "Lokesh", "lastName": "Gupta" } ``` 觀察輸出。 版本號大于`1.1`,即`1.2`的字段將被忽略。 其他領域也都很好。 #### 3.2 具有版本支持的反序列化 讓我們將 JSON 字符串反序列化為版本號為`1.1`的`Employee`對象。 ```java String json = "{'id': 1001, " + "'firstName': 'Lokesh'," + "'lastName': 'Gupta'," + "'email': 'howtodoinjava@gmail.com'}"; Gson gson = new GsonBuilder() .setVersion(1.1) .setPrettyPrinting() .create(); Employee employeeObj = gson.fromJson(json, Employee.class); System.out.println(employeeObj); ``` ```java Employee [id=1001, firstName=Lokesh, lastName=Gupta, email=null] ``` 觀察輸出。 即使 JSON 字符串具有`email`字段,也沒有反序列化。 請來回答有關**使用[`@Since`](https://static.javadoc.io/com.google.code.gson/gson/2.8.5/com/google/gson/annotations/Since.html)注解的 Gson 版本支持的問題**。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看