FXCollections.reverse抛出UnsupportedOperationException异常

问题描述:

我使用FXCollections.observableArrayList()创建ObservableList使用FXCollections.reverse,并且该方法将引发UnsupportedOperationException异常。我甚至试图将使用FXCollections.observableList(list)创建的列表颠倒,使用不同类型的列表,但反向方法一直抛出异常。FXCollections.reverse抛出UnsupportedOperationException异常

我错过了什么?

P.S.我在Linux上使用JavaFX

+0

你能发布一些代码?这对我来说很好。 – 2014-12-07 21:54:41

+0

我只是在做 '... ObservableList list = FXCollections.observableArrayList(); FXCollections.reverse(list); ...' 我实际上已经通过JavaFX代码,似乎(至少我在Linux上的版本),FXCollections.reverse是打破,因为它用来创建任何列表的列表包装,没有实现了setAll()方法。 – 2014-12-07 22:00:40

+0

双重检查。代码在那里(我的错误)。仍然不知道它可能是什么 – 2014-12-07 22:10:51

认为我发现了问题。我试图从ListChangeListener的回调中为同一个列表调用FXCollections.reverse()。我是这样的:

公共类ACLASS {

private static ObservableList<Double> list; 

public static void main(String[] args) throws Exception { 
    list = FXCollections.observableArrayList(); 
    list.addListener((ListChangeListener.Change<? extends Point> change) -> { 
     while (change.next()) { 
      if (change.wasRemoved() || change.wasAdded()) { 
       doSomethingFunction(); 
      } 
     } 
    }); 
} 

private static void doSomethingFunction() { 
    FXCollections.reverse(list); 
} 

}