本文介绍了为什么SortedList.add()抛出UnsupportedOperationException?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

非常简单的代码:

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.transformation.SortedList;

public final class SortedListTest {

   public static void main( String[] args ) {
      final ObservableList<Integer> il  = FXCollections.observableArrayList();
      final SortedList<Integer>     sil = new SortedList<>( il );
      sil.comparatorProperty().set((l,r)-> l-r );
      sil.add( 12 );
   }
}

执行:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)
    at SortedListTest.main(SortedListTest.java:13)


推荐答案

SortedList 是其基础列表的排序视图。如果允许您将元素添加到排序列表中,则会破坏该关系。您需要将元素添加到基础列表中:

A SortedList is a sorted view of its underlying list. If you were allowed to add elements to the sorted list it would break that relationship. You need to add the element to the underlying list instead:

il.add(12);

这篇关于为什么SortedList.add()抛出UnsupportedOperationException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 13:29