在 Hybris 中从 -items.xml 生成最终的 class

Generate a final class from -items.xml in Hybris

Final class in java 意味着它不能被任何其他 class 扩展。在 -Items.xml 中定义数据模型时,我们如何在 hybris 中做到这一点?

SAP Hybris 平台不支持生成 final 数据模型 classes OOTB(开箱即用)。您不能覆盖该机制,但您可以修改位于 src 目录中的生成的 class。如果您想要 final 数据模型 class(例如 Foo),您可以手动添加此修饰符。

<itemtypes>
    <itemtype code="Foo" jaloclass="org.example.Foo">
        <attributes>
            <!-- attributes -->
        </attributes>
    </itemtype>
</itemtypes>

文件结构:

  • src/org/example/Foo ← 您可以将此 class 标记为 final
  • gensrc/org/example/GeneratedFoo ← 你不能修改这个 class

(class Foo 扩展 GeneratedFoo)

所有类型扩展 Foo 的扩展都将在构建阶段失败。


SAP Hybris 平台仅允许使用等于 true:

abstract 属性来设置 abstract 修饰符
<itemtypes>
    <itemtype code="Foo" abstract="true">
        <attributes>
            <!-- attributes -->
        </attributes>
    </itemtype>
</itemtypes>