commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Ansell <>
Subject Re: [LANG] Add ThreadUtils
Date Sun, 12 Apr 2015 23:48:35 GMT
On 12 April 2015 at 21:14, Benedikt Ritter <> 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>

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.



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message