Java JIBX:JIBX代码中的错误
项目设置: 项目域包含没有jibx配置的所有域对象Java JIBX:JIBX代码中的错误,java,jibx,Java,Jibx,项目设置: 项目域包含没有jibx配置的所有域对象 Class A { List<A> list; } 当我们将Domain.A类复制到JibxTest项目并修改绑定文件时。 它可以工作。根据: JiBX应该能够处理jar中的类,只要 您只使用公共字段或方法。如果字段不是公共字段, 您需要切换到公共get/set方法(如果可用)或 取消类文件的归档,以便JiBX绑定编译器可以修改它们 在Java中,有getter和setter是标准的,所以我建议您添加它们。问题是当类A有Lis
Class A {
List<A> list;
}
当我们将Domain.A类复制到JibxTest项目并修改绑定文件时。
它可以工作。根据:
JiBX应该能够处理jar中的类,只要
您只使用公共字段或方法。如果字段不是公共字段,
您需要切换到公共get/set方法(如果可用)或
取消类文件的归档,以便JiBX绑定编译器可以修改它们
在Java中,有getter和setter是标准的,所以我建议您添加它们。问题是当类A有List实例时,我们试图从JAR中读取它。对不起,我不理解您的评论。如果你需要我的帮助,你必须更清楚。谢谢罗宾·格林,但问题现在已经解决了。当我们使用get方法和set方法而不是使用“field”时,如果您想知道为什么您可能会在这个答案上收到否决票,因为删除的评论是一篇元帖子的主题--
<binding>
<mapping name="A" class="Domains.A" ordered="false">
<collection item-type="Domains.A" field="list" usage="optional" create- type="java.util.ArrayList"/>
</mapping>
</binding>
Error during code generation for file 'C:\JIBXTest/binding.xml' -
[bind] this may be due to an error in your binding or classpath, or to an error in the JiBX code ***
[bind] java.lang.IllegalStateException: Internal error - cannot modify class Domains.A loaded from C:\JIBXTest\lib\Domains.jar