在这个问题上我需要一个认真的帮助。可能是很基本的,但是,我想不出来。我有一个会话ejb,它有一个返回枚举数组的方法,即BlndItmTmMthd数组。当我在客户端调用该方法时,它会给我一个ClassCastException

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LBlndItmTmMthd

在调试时,我发现ejb方法通过调用BlndItmTmMthd正确地返回BlndItmTmMthd.values()数组。我无法找出原因。任何想法都会有帮助的。
从下面的评论添加内容
agreementsession.java是包含以下方法声明的ejb接口:
BlndItmTmMthd[] getAllBlendedItemTimingMethods();

agreementsessionejb.java是实现它的ejb。
public BlndItmTmMthd[] getAllBlendedItemTimingMethods() {
    BlndItmTmMthd[] blendedItemTmingMethods = BlndItmTmMthd.values();
    return blendedItemTmingMethods;
}

现在,在客户端,当我使用以下代码调用ejb方法时:
BlndItmTmMthd[] _timingMethods =
             getLoanScheduleSetupSession().getAllBlendedItemTimingMethods();

我得到了运行时异常。

最佳答案

错误中的“[L”告诉您问题所在—Java无法将对象数组(即对象[])转换为blnditmtmthds数组(blnditmtmthd[])。
blnditmmmthd真的是java.lang.enum吗?

10-04 14:20