Sounds good. Remko was mentioning how they could be combined by checking if
get() returns an instanceof Message, but using the wildcard bounds like you
show sounds like a better way (where possible).

On 15 February 2016 at 11:06, Gary Gregory <garydgreg...@gmail.com> wrote:

> Since 2.4 we have:
>
> public interface MessageSupplier {
>
>     /**
>      * Gets a Message.
>      *
>      * @return a Message
>      */
>     Message get();
> }
>
> and
>
> public interface Supplier<T> {
>
>     /**
>      * Gets a value.
>      *
>      * @return a value
>      */
>     T get();
> }
>
> Which smells fishy to me. Instead I propose:
>
> public interface MessageSupplier extends Supplier<Message> {
>     // empty
> }
>
> Whether or not we do the above, we can replace:
>
> traceExit(R, Supplier<? extends Message>)
>
> with:
>
> traceExit(R, MessageSupplier)
>
> which we already have.
>
> A test search shows the above as the only instance of "Supplier<? extends
> Message>" in our Java files.
>
> Thoughts?
>
> --
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>



-- 
Matt Sicker <boa...@gmail.com>

Reply via email to