我有以下课程

private static class Person{
    private int iq;
    private Person[] minions;

    public int getIq() {
        return iq;
    }
    public Person[] getMinions() {
        return minions;
    }
}


我正在针对此代码尝试以下MVEL(1.3.16-java1.6)表达式

count = 0;
foreach (minion : minions){
    if (minions[count].iq > 120) {
        return true;
    }
}
return false;


但是,MVEL似乎在minions[count].iq(甚至minions[0].iq)构造中存在问题。

任何输入将不胜感激。编译器的确切松鸡是

Caused by: java.lang.IllegalAccessException: Class org.mvel.optimizers.impl.asm.ASMAccessorOptimizer can not access a member of class Person with modifiers "public"

最佳答案

您的Person类是私有的,因此我认为它对ASMAccessorOptimizer不可见,或者,ASMAccessorOptimizer将无权访问它。

声明Person公开应该解决该问题。

07-28 00:33