JAXB 可以创建“只读”类属性吗?

Posted

技术标签:

【中文标题】JAXB 可以创建“只读”类属性吗?【英文标题】:Can JAXB create a 'read only' class property? 【发布时间】:2012-01-01 02:08:54 【问题描述】:

有没有办法让 jaxb 为从 xsd 文件中的元素标记生成的类属性(即 xs:integer 类型的元素)只创建一个 getter(无 setter)?将原始类型属性设为 const(即从 xs:int 类型的元素生成的属性)怎么样?

【问题讨论】:

【参考方案1】:

通常的做法是将 JAXB 生成的对象转换为正确定义的域模型类。这样您就可以完全控制模型类在代码中的行为方式,并且如果 XSD 发生更改,您的代码中不会出现很多中断的地方。您只需要更新您的“转换器”类,因为这应该是您依赖 JAXB 生成的类的唯一地方

【讨论】:

以上是关于JAXB 可以创建“只读”类属性吗?的主要内容,如果未能解决你的问题,请参考以下文章

QML:在派生类中使属性只读

在派生类中将属性设为只读

在 Python 中将类实例属性设为只读

python ≥3.9 中的只读类属性,支持 `help()`

Objective-C:(私有/公共属性)为外部类调用设置只读属性,为自调用设置只读属性

Java/JAXB:根据属性将 Xml 解组为特定子类