2016-07-06 48 views
10

我使用jaxb2-maven-plugin从给定的XSD生成JaxB类。 它工作正常。 但是现在我想在生成的类中使用java.util.Optional。但是JaxB生成了没有选项的类。所以我不得不对每个变量进行空值检查。如何使用java.util.Optional生成JaxB类?

有没有人知道jaxb2-maven-plugin是如何配置使用java.util.Optional的?

感谢您的帮助!

+1

工作生成的类使用该适配器不是很好的选择。为什么不用nillable =“true”字段来丰富xsd。 –

+0

我同意@Mark你应该避免修改任何生成的类。 我发现了一个类似的问题,它似乎是可行的使用自定义适配器,而无需修改生成的类:https://stackoverflow.com/questions/23071450/using-guavas-optional-with-xmlattribute – Woody

回答

0

也许你可以找到更通用的东西,但我不确定这是否可能。 无论如何,你仍然可以定义自定义适合你想成为可选类型的适配器。

这里是整数

首先的一个例子,创建一个适配器

public final class IntegerOptionalAdapter extends OptionalAdapter<Integer> 
{ 
} 

然后在你的绑定

@XmlAttribute 
@XmlJavaTypeAdapter(IntegerOptionalAdapter.class) 
private Optional<Integer> someInteger; 
+0

这实际上不是一个好主意,领域。最好在获得者中创建它们。 –