Proposed API for JEP 259: Stack-Walking API
Paul Sandoz
paul.sandoz at oracle.com
Wed Nov 4 09:57:41 UTC 2015
> On 4 Nov 2015, at 10:03, Remi Forax <forax at univ-mlv.fr> wrote:
>
> Hi Paul,
>
> The use of BaseStream was just an example, here is another one that works only if the function first parameter type is declared as '? super Stream<StackWalker.StackFrame>'.
>
> static Function<Stream<?>, Integer> counter() {
> return stream::count;
> }
>
> ...
> StackWalker walker = ...
> int count = walker.walk(counter());
>
Good point. Damn, i don’t like wildcards :-)
The following works fine:
static <T> Function<Stream<T>, Long> counter() {
return Stream::count;
}
But there could also cases where one is stuck using a wildcard:
Function<Stream<?>, Long> f = Stream::count;
Paul.
More information about the core-libs-dev
mailing list