2015-04-13 2:27 GMT+02:00 Matt Benson <gudnabr...@gmail.com>:

> +1 to what Peter said: it's a functional interface so it is
> lambda-compatible anyway.
>

Well, yes it would be a functional interface, but it would lack all the
default methods defined in java.util.function.Predicate if we don't extend
it later.


>
> Matt
> On Apr 12, 2015 6:49 PM, "Peter Ansell" <ansell.pe...@gmail.com> wrote:
>
> > On 12 April 2015 at 21:14, Benedikt Ritter <benerit...@gmail.com> wrote:
> > > Hi,
> > >
> > > there is currently a discussion on github about the addition of a low
> > level utility class which helps to retrieve Threads [1]. The latest
> > proposal is to implement a predicate based approach for filtering threads
> > [2]. My opinion is, that we should not add such an API at all, because we
> > would have to revert it anyway, when we upgrade [lang] to Java 8. Further
> > more I don't think it is a good idea to add a generic Pedicate interface
> to
> > [lang]. This will only cause confusion for users already using Java 8. So
> > if we really want to add predicate based API in ThreadUtils, it should
> IMHO
> > Look like this:
> > >
> > > Collection<Thread> ThreadUtils.findThreads(ThreadPredicate filter)
> > >
> > > public interface ThreadPredicate {
> > >    boolean test(Thread);
> > > }
> >
> > In my Java-8-only code, the above is what I already do. The only
> > addition once you get to Java-8 as a baseline would be to add
> > @FunctionalInterface as a class annotation, to enable the compiler to
> > verify that it stays as a functional interface.
> >
> > > Later we can change this to:
> > >
> > > Collection<Thread>
> > ThreadUtils.findThreads(java.util.function.Predicate<Thread> filter)
> >
> > It is completely unnnecessary to make the change above, although with
> > the change below it should not disturb any code that was already using
> > it due to the way lambda matching works.
> >
> > > public interface ThreadPredicate extends
> > java.util.function.Predicate<Thread>
> >
> > This change is useful once JDK-8 is the baseline, as it would only add
> > features (all of the default methods) from Predicate, not remove any
> > features or backwards compatibility.
> >
> > Cheers,
> >
> > Peter
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>



-- 
http://people.apache.org/~britter/
http://www.systemoutprintln.de/
http://twitter.com/BenediktRitter
http://github.com/britter

Reply via email to