<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 7 Nov 2016, at 23:42, Hendrik Ebbers &lt;<a href="mailto:hendrik.ebbers@me.com" class="">hendrik.ebbers@me.com</a>&gt; wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class="">I don’t think that support for Optional is that important since having a field of type Optional looks like an anti-pattern to me. Normally Optional should be used as a method return type and&nbsp;not as a type for a field. Supporting it in the bean validation might end in strange model classes.&nbsp;<br class=""><br class="">Example:<br class=""><br class="">The following model looks good to me:<br class=""><br class=""><font face="Courier New" class="">public class Model {<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>@NotNull<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>private String name;&nbsp;<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>public String getName() { return name; }<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>public void setName(String name) { this.name = name; }<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>public Optional&lt;String&gt; name() { return Optional.ofNullable(name);}<br class=""><br class="">}</font><br class=""><br class="">On the other hand this looks like an anti-pattern to me:<br class=""><br class=""><font face="Courier New" class="">public class Model {<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>@NotNull<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>private Optional&lt;String&gt; name;&nbsp;<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>public Optional&lt;String&gt; getName() { return name; }<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>public void setName(String name) { this.name = Optional.ofNullable(name); }<br class=""><br class="">}<br class=""></font></div></div></div></blockquote><br class=""></div><div>Yes Optional on a property is deemed an anti pattern by the JDK team but since Bean Validation supports contraints on method parameters and return values, this is still a valid use case</div><div><br class=""></div><div>Optional&lt;@Email String&gt; getUserEmail(@NotNull UUID userId);</div><div><br class=""></div><div>Emmanuel</div><br class=""></body></html>