Сегодня я обнаружил в iReport, что не могу установить выражение начального значения String [], используя обычно допустимый синтаксис Java, такой как:
private String[] fruitNames = new String[] {"Apple", "Banana"};
Экстраполировать это в переменную iReport было бы так просто (я бы подумал):
Имя : fruitNames
ПеременнаяClass : java.lang.String []
Расчет : Ничего
Тип сброса : Отчет
IncrementType : Нет
Выражение начального значения : новая строка [] {"Apple", "Banana"}
При компиляции моего шаблона отчета я получаю сообщение об ошибке:
Исключения при компиляции: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@683896bd> net.sf.jasperreports.engine.JRException: возникли ошибки при компиляции выражений отчета c> lass file: org.codehaus.groovy.control. MultipleCompilationErrorsException: сбой запуска:> calculator_Fruits_1326149102402_537017: 281: неожиданный токен: Apple @ line 281, столбец 55.> 1 ошибка
В редакторе кода для установки начального значения я замечаю, что анализатор подчеркивает красными фигурные скобки {}. Это имеет смысл, поскольку iReport интерпретирует эти фигурные скобки как идентификаторы параметров, полей или переменных. Итак, я вижу, где может существовать конфликт, но знает ли кто-нибудь правильный синтаксис для инициализации String [] в поле «Выражение начального значения»?
Примечание: я обошел проблему, просто установив значение в Scriptlet, но мне действительно интересно узнать правильный синтаксис, если он существует.