如何使用java.util.Optional生成JaxB类?
问题描述:
我使用jaxb2-maven-plugin从给定的XSD生成JaxB类。 它工作正常。 但是现在我想在生成的类中使用java.util.Optional。但是JaxB生成了没有选项的类。所以我不得不对每个变量进行空值检查。如何使用java.util.Optional生成JaxB类?
有没有人知道jaxb2-maven-plugin是如何配置使用java.util.Optional的?
感谢您的帮助!
答
也许你可以找到更通用的东西,但我不确定这是否可能。 无论如何,你仍然可以定义自定义适合你想成为可选类型的适配器。
这里是整数
首先的一个例子,创建一个适配器
public final class IntegerOptionalAdapter extends OptionalAdapter<Integer>
{
}
然后在你的绑定
@XmlAttribute
@XmlJavaTypeAdapter(IntegerOptionalAdapter.class)
private Optional<Integer> someInteger;
+0
这实际上不是一个好主意,领域。最好在获得者中创建它们。 –
工作生成的类使用该适配器不是很好的选择。为什么不用nillable =“true”字段来丰富xsd。 –
我同意@Mark你应该避免修改任何生成的类。 我发现了一个类似的问题,它似乎是可行的使用自定义适配器,而无需修改生成的类:https://*.com/questions/23071450/using-guavas-optional-with-xmlattribute – Woody