Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么JSF(primefaces)无法为java.util.Arrays$ArrayList类型创建新的集合实例_Jsf_Exception_Arraylist_Primefaces - Fatal编程技术网

为什么JSF(primefaces)无法为java.util.Arrays$ArrayList类型创建新的集合实例

为什么JSF(primefaces)无法为java.util.Arrays$ArrayList类型创建新的集合实例,jsf,exception,arraylist,primefaces,Jsf,Exception,Arraylist,Primefaces,也许有人可以帮我: 我有一个dataTable,它由ArrayList填充,当我在引起一些更改后尝试更新这个dataTable时,我遇到了一个异常 严重[http-apr-8080-exec-1]com.sun.faces.renderkit.html_basic.MenuRenderer.createCollection无法为java.util.Arrays$ArrayList类型创建新的集合实例 java.lang.InstantiationException:java.util.Array

也许有人可以帮我: 我有一个dataTable,它由ArrayList填充,当我在引起一些更改后尝试更新这个dataTable时,我遇到了一个异常

严重[http-apr-8080-exec-1]com.sun.faces.renderkit.html_basic.MenuRenderer.createCollection无法为java.util.Arrays$ArrayList类型创建新的集合实例 java.lang.InstantiationException:java.util.Arrays$ArrayList

原因:java.lang.NoSuchMethodException:java.util.Arrays$ArrayList。()

我在软件上看到了类似的问题,但不幸的是,这对我没有用。 (我的ArrayList没有被Arrays.asList实例化)。我的应用程序运行正常,但我需要删除此异常

这是my.xhtml的一部分,其中定义了dataTable:

<p:dataTable id="columnsDef"
   widgetVar="columnsList"
   value="#{setup.columnWrapperList}"
   var="columnVar"
   rowKey="#{columnVar.wrappedColumnId}"
   selectionMode="single"
   selection="#{setup.selectedColumn}"
   lazy="false"
   rows="10"
   paginator="false"
   style="width: 100%"
   emptyMessage="#{msg['common.emptyMsg']}"
   resizableColumns="true"
   filterEvent="enter"
   tableStyle="width: auto">

下面是更新的.xhtml whre setup.columnWrapperList的一部分

<div class="left">
            <p:commandButton icon="ui-icon-triangle-1-n"
                             actionListener="#{setup.decOrder}"
                             update="@([id$=columnsDef])"
                             />
            <p:commandButton icon="ui-icon-triangle-1-s"
                             actionListener="#{setup.incOrder}"
                             update="@([id$=columnsDef])"
                             />
        </div>

最后是导致ArrayList更改的“setup”bean的一部分:

    public void decOrder() {
    int i = selectedColumn.getOrder();
    if (i > 0) {
        columnWrapperList.get(i).setOrder(i - 1);
        columnWrapperList.get(i - 1).setOrder(i);
        columnWrapperList.sort(new Comparator<ColumnWrapper>() {
            @Override
            public int compare(ColumnWrapper o1, ColumnWrapper o2) {
                return o1.getOrder() < o2.getOrder() ? -1 : 1;
            }
        });
    }
}
public void decOrder(){
int i=selectedColumn.getOrder();
如果(i>0){
columnWrapperList.get(i).setOrder(i-1);
columnWrapperList.get(i-1).setOrder(i);
columnWrapperList.sort(新的Comparator(){
@凌驾
公共int比较(ColumnWrapper o1,ColumnWrapper o2){
返回o1.getOrder()

有人能帮我吗?

不用排序就行了?如果是,请尝试使用集合进行排序。排序:

Collections.sort(columnWrapperList, new Comparator<ColumnWrapper>() {
    @Override public int compare(ColumnWrapper o1, ColumnWrapper o2) {
        return Integer.compare(o1.getOrder(), o2.getOrder());
    }
});
Collections.sort(columnWrapperList,new Comparator(){
@重写公共int比较(ColumnWrapper o1,ColumnWrapper o2){
返回整数.compare(o1.getOrder(),o2.getOrder());
}
});

谢谢,但它的工作原理是一样的。据我所知,除了调用方法(静态或来自对象)之外,这是一样的。顺便说一句,排除排序不会影响异常。你好,亲爱的@BalusC,在问这个问题之前,我仔细阅读了你的答案,但仍然找不到有助于我解决问题的答案(我知道这是同一个错误域)。您将我的问题标记为引用的重复问题,但在这个问题中,您建议检查Arrays.asList初始化以获取ArrayList,所以我做了(检查不可变集合),但没有。也许你能提出更全面的解决方案?非常感谢。这里还有columnWrapperList的用法,它没有数组。asList这与数据表无关。例外情况来自
menurender
,它仅用于多选
selectXxx
组件,如
。哦,是的!非常感谢。我“真的”仔细阅读你的未回复,然后在我的页面添加中查找selectMany,现在它工作得很好@巴卢斯再次感谢:)