1

プロジェクトを JSFContainer 2.2 から JSFContainer 2.3 にアップグレードしました

<p:selectManyListbox id="acl" value="#{controller.process.basisList}" >  
    <f:selectItems value="#{controller.filinglist}" />  
</p:selectManyListbox> 

ファイリングリストには、ob(1L, 'data1'); のようなクラス オブジェクトがあります。ジェネリック型 String を持つbasisList

JSFContainer 2.2、CDI 1.2、および EL 3.0 を使用する場合。Long データが baseList List に String として格納されており、正常に動作しています。以下のURLでこの概念を理解しています

Java リフレクション API

ただし、JSFContainer 2.3、CDI 2.0、および EL 3.0 では。以下のエラーが発生しました

コードを実行すると

for(String i : basisList) {
    System.out.println(i);
}

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String.

以下のコードを使用してデバッグします

for(Object i : basisList) {
        System.out.println(i.getClass() + " > " + i);
    }

取得している出力は以下のとおりです

class java.lang.Long > 3
4

2 に答える 2