Java 用户定义的变量在jasper中执行两次

Java 用户定义的变量在jasper中执行两次,java,jasper-reports,Java,Jasper Reports,我试图在jasper报告中使用变量。我创建了一个列表组件,如下所示 <componentElement> <reportElement x="0" y="0" width="426" height="50" uuid="a99e79ba-74a6-4224-a1e5-d8b8d557a42f"/> <jr:list xmlns:jr="http://jasperreports.sourceforge.n

我试图在jasper报告中使用变量。我创建了一个列表组件,如下所示

<componentElement>
                <reportElement x="0" y="0" width="426" height="50" uuid="a99e79ba-74a6-4224-a1e5-d8b8d557a42f"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="dataset2" uuid="61554b87-1110-4c24-848a-c74c83ca33aa">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"))]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="50" width="426"/>
                </jr:list>
</componentElement>
似乎列表的每次迭代都会执行该变量。但是我想知道为什么每次迭代都要执行两次变量,以及如何防止?当我试图将值放入列表或想要附加StringBuilder时,这个问题让我非常头疼

非常感谢您的帮助

<subDataset name="dataset2" uuid="c2f92ca6-ab45-4b91-89f6-2ca7a4c80d4e">
        <variable name="variable1" class="java.lang.String">
            <variableExpression><![CDATA["Variable Value";System.out.println("Variable")]]></variableExpression>
            <initialValueExpression><![CDATA["Initial Value";System.out.println("Initial")]]></initialValueExpression>
        </variable>
</subDataset>
Initial 
Variable 
Variable 
Variable 
Variable 
Variable 
Variable