<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java 9 - `@SafeVarargs`注解 > 原文: [https://beginnersbook.com/2018/05/java-9-safevarargs-annotation/](https://beginnersbook.com/2018/05/java-9-safevarargs-annotation/) Java 7 引入了`@SafeVarargs`注解來抑制當方法具有`varargs`(可變數量的參數)時出現的不安全操作警告。`@SafeVarargs`注解只能用于無法覆蓋的方法(最終或靜態方法或構造函數),因為[重寫方法](https://beginnersbook.com/2014/01/method-overriding-in-java-with-example/)仍然可以對其 varargs(可變數量的參數)執行不安全操作。 Java 9 擴展了`@SafeVarargs`注解的使用,它現在也可以與私有方法一起使用。這是因為無法覆蓋私有方法。之前這個注解僅限于最終或靜態方法或構造函數,但現在它可以與私有方法一起使用。 ## Java 9 示例 - 當我們不使用`@SafeVarargs`注解時? ```java import java.util.ArrayList; import java.util.List; public class JavaExample{ // We are not using @SafeVarargs annotation - Java 9 private void print(List... names) { for (List<String> name : names) { System.out.println(name); } } public static void main(String[] args) { JavaExample obj = new JavaExample(); List<String> list = new ArrayList<String>(); list.add("Kevin"); list.add("Rick"); list.add("Negan"); obj.print(list); } } ``` **警告:** ```java Type safety: Potential heap pollution via varargs parameter names Type safety: A generic array of List is created for a varargs parameter ``` **輸出:** ```java [Kevin, Rick, Negan] ``` **正如你所看到的,代碼運行良好但卻沒有產生任何警告。** Eclipse Oxygen IDE 中此代碼的屏幕截圖,顯示警告。 ![Java 9 @SafeVarargs annotation](https://img.kancloud.cn/d0/4c/d04c3ee613281c19fdadb5bca9eee04f_840x674.jpg) ## Java 9 - `@SafeVarargs`注解示例 讓我們在使用`@SafeVarargs`注解后再次運行相同的代碼。 ```java import java.util.ArrayList; import java.util.List; public class JavaExample{ @SafeVarargs private void print(List... names) { for (List<String> name : names) { System.out.println(name); } } public static void main(String[] args) { JavaExample obj = new JavaExample(); List<String> list = new ArrayList<String>(); list.add("Kevin"); list.add("Rick"); list.add("Negan"); obj.print(list); } } ``` 相同的輸出沒有任何警告。 **注意:**如果您嘗試在 Java 7 和 Java 8 中編譯上述代碼,您將收到編譯錯誤,因為此增強功能在 Java 9 中完成,在 Java 9 之前 - 不允許使用私有方法標有此注解。
                  <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>

                              哎呀哎呀视频在线观看