我不是java新手,但今天我被一个问题吸了1个小时,我不知道为什么。
我的代码如下所示:
我的数组列表:
private ArrayList<Theme> selectedThemes;
我的循环:
for (Theme selectedTheme : selectedThemes) {
System.out.println(selectedTheme.getNom());
}
当我尝试执行下面的代码时,我收到了这个异常:
java.lang.ClassCastException: java.lang.String cannot be cast to com.mycompany.ecommerce.Modele.Catalogue.Theme
我从例外中了解到 selectedTheme 是 String ,这对我来说很奇怪。
请注意,当我执行此代码时:
System.out.println(selectedThemes);
它正常显示列表的对象。
编辑
我不确定这段代码是否与我的问题有关:它是 与我的 ArrayList 相关的SelectManyMenu
<p:selectManyMenu id="advanced" value="#{jsfClient.selectedThemes}"
var="t" showCheckbox="true">
<f:selectItems value="#{jsfClient.themes}" var="theme" itemLabel="#{theme.nom}" itemValue="#{theme}" />
<p:column>
<h:outputText styleClass="ui-theme ui-theme-#{t.nom}" />
</p:column>
<p:column>
<h:outputText value="#{t.nom}" />
</p:column>
</p:selectManyMenu>
jsfClient 是 ManagedBean。请任何帮助,谢谢。