我目前正在将应用程序从open laszlo从3.3迁移到5.0。我在其中一个类中遇到了这个错误。
line unknown: Error: A conflict exists with inherited definition $lzc$class_xxx.$datapath in namespace public, in line: var $classrootdepth;var $datapath;function $lzc$class__mjb ($0:LzNode? = null, $1:Object? = null, $2:Array? = null, $3:Boolean = false) {
在那个特定的类中,我有datapath标签,如果我删除,那么我没有收到此错误。
有谁能告诉我为什么会出现这个错误?
答案 0 :(得分:2)
我设法使用以下代码重现错误消息:
<canvas debug="true">
<class name="c1" extends="node">
<datapath />
</class>
<class name="c2" extends="c1">
<datapath />
</class>
</canvas>
在研究JIRA时,我发现它已经作为一个bug存档:LPP-9747 - SWF10: Explicit <datapath> declarations in class definitions lead to compiler error
似乎存在相对较多的错误或案例,其中编译器会发出错误消息或难以理解的异常 - 尤其是在使用SWF10 +运行时支持将3.x或4.0 / 4.1应用程序升级到OpenLaszlo版本时。这是非常不幸的,因为它很容易给人一种编译器错误的印象。
在&lt; c1&gt;的实例中使用datapath标记时和&lt; c2&gt;,编译器不报告任何错误消息,例如:
<canvas>
<class name="c1" extends="node">
</class>
<class name="c2" extends="c1">
</class>
<c1>
<datapath/>
<c2>
<datapath />
</c2>
</c1>
</canvas>