Проблема разрешения вложенного свойства MVEL - PullRequest
0 голосов
/ 21 июля 2011

У меня есть следующий класс

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"

1 Ответ

1 голос
/ 21 июля 2011

Ваш Person класс является частным, поэтому я предполагаю, что он не будет виден для ASMAccessorOptimizer или, если это произойдет, ASMAccessorOptimizer не будет иметь права на доступ к нему.

Объявление Personобщественность должна решить эту проблему.

...