<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之旅 廣告
                # Java 9 - 創建不可變`List`的工廠方法 > 原文: [https://beginnersbook.com/2018/04/java-9-factory-method-to-create-immutable-list/](https://beginnersbook.com/2018/04/java-9-factory-method-to-create-immutable-list/) [Java 9](https://beginnersbook.com/2018/04/java-9-features-with-examples/) 到中引入了幾種有用的工廠方法,創建了不可變(不可修改)`List`。 ## 1.在 Java 9 之前創建不可變`List` 在我們看到 Java 9 中引入的工廠方法之前。讓我們看看我們在 Java 9 之前如何創建不可變`List`。 ### 1.1 在 java SE 9 之前創建空的不可變`List` 在 Java 9 之前,我們必須使用`Collections`類的`unmodifiableList()`方法來創建不可變`List`。 ```java List<String> noElementList = new ArrayList<String>(); List<String> immuList = Collections.unmodifiableList(noElementList); ``` **注意:**讓我們測試 [Java Shell(JShell)](https://beginnersbook.com/2018/04/java-9-jshell-repl/)中的代碼。 ![Creating immutable list before Java 9](https://img.kancloud.cn/99/b2/99b209b7bbeb8a2924aa605eec3cbb2a_1024x445.jpg) ### 1.2 在 Java SE 9 之前創建非空的不可變`List` ```java List<String> list = new ArrayList<String>(); list.add("Chaitanya"); list.add("Rick"); list.add("Glenn"); List<String> immuList = Collections.unmodifiableList(list); ``` ![Non Empty Immutable List Prior to Java SE 9](https://img.kancloud.cn/19/9a/199a00eb6b92075c9c1445b129ba6320_1024x641.jpg) ## 2\. Java 9 - 使用`List`的靜態工廠方法創建不可變`List` Java 9 引入了`of()`方法的幾個版本來創建不可修改的列表。 ```java static <E> List<E> of() ``` ### 2.1 Java 9 - 創建空的不可變`List` ```java List<String> immuList = List.of(); ``` ![Java 9 Creating Empty List using of() method](https://img.kancloud.cn/66/d3/66d376ed2ecd3250a7ba2d82b132c72f_1024x390.jpg) ### 2.2 Java 9 - 創建非空的不可變`List` 讓我們采用與上面使用`unmodifiableList()`方法相同的示例。您可以看到在 Java 9 中創建此類列表是多么簡單。我們使用`List`的工廠方法將 5 行代碼減少到一行。 ```java List<String> immuList = List.of("Chaitanya", "Rick", "Glenn"); ``` ![Java 9 creating non empty immutable list](https://img.kancloud.cn/52/d1/52d1bb23f00789ccea1a81a119e3a82c_1024x390.jpg) ## 什么是不可變`List`? 1. 不可變`List`不允許添加,刪除和更新其元素。 ```java jshell> List<String> immuList = List.of("Chaitanya", "Rick", "Glenn"); immuList ==> [Chaitanya, Rick, Glenn] jshell> immuList.add("Negan") | java.lang.UnsupportedOperationException thrown: | at ImmutableCollections.uoe (ImmutableCollections.java:71) | at ImmutableCollections$AbstractImmutableList.add (ImmutableCollections.java:77) | at (#2:1) ``` 2. 我們不能將`null`元素添加到不可變`List`中。 ```java jshell> List<String> immuList = List.of("Chaitanya", "Rick", "Glenn"); immuList ==> [Chaitanya, Rick, Glenn] jshell> immuList.add(null) | java.lang.UnsupportedOperationException thrown: | at ImmutableCollections.uoe (ImmutableCollections.java:71) | at ImmutableCollections$AbstractImmutableList.add (ImmutableCollections.java:77) | at (#2:1) ``` ![UnsupportedOperationException while adding null element to an immutable list](https://img.kancloud.cn/03/4f/034f9a9fed1ee8b12d78d34f4013a5fd_1024x453.jpg)
                  <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>

                              哎呀哎呀视频在线观看