Java 16がStream上でtoList()を使用する場合に発生するUnsupported OperationException


Java 16には、Streamでリストを簡単に作成できるtoList()が存在する.でも私のように勝手に使うと、問題が発生します...
問題が発生した場合は以下の通りです.
List<Integer> result = Stream.of(19,21,17).toList();
result.sort(Comparator.naturalOrder());
以前はStreamのcollects.toList()を使用してList形式で値を返しましたが、悪いIntellijからtoList()を使用するようにメッセージが送られ、上記の変更が行われました.
その結果、次のようなエラーが発生しました.
Exception in thread "main" java.lang.UnsupportedOperationException
	at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)
	at java.base/java.util.ImmutableCollections$AbstractImmutableList.sort(ImmutableCollections.java:261)
	at com.chb.chapter3.Problem4.solution(Problem4.java:22)
	at com.chb.chapter3.Problem4.main(Problem4.java:16)
上記のエラーが発生したのは、toList()で提供されたListを使用してunmodifibleList()で変更できないためです.
toList()関数内部は以下のようになります.
    @SuppressWarnings("unchecked")
    default List<T> toList() {
        return (List<T>) Collections.unmodifiableList(new ArrayList<>(Arrays.asList(this.toArray())));
    }
TOList()を使用して結果が得られると修正できないため、以下に示す従来の方法で解決できる
List<Integer> result = Stream.of(19,21,17).collect(Collectors.toList());
result.sort(Comparator.naturalOrder());
Intellijの誘導はあまり信じられないと思います.
にこにこ