How come... part 1: importing statically
Richard Warburton
richard.warburton at gmail.com
Sat Jan 4 06:00:24 PST 2014
Hi,
Arrays.asList("--(!)Error loading\n").stream().forEach(System.out::printf);
>
> but I can’t write:
>
> import static java.lang.System.out::printf;
>
> . . .
>
> printf("--(!)Error loading\n");
>
>
> What’s up with that?
import static let's you import static fields or methods with an abbreviated
syntax. printf isn't a static field or method - its an instance method of
the PrintStream class. On the other hand "out" is a static field of the
System class, so you can do:
import static java.lang.System.out;
out.printf("--(!)Error loading\n");
What you asking for is a situation where "import static" imports things
that aren't static. This would almost inevitably lead to an alternative
"How come ..." question!
(This is part 1 in my How come... series, more parts as they come.)
>
I will observe that this question didn't really have anything to do with
lambda expressions and stack overflow deals very well with general Java
questions.
regards,
Richard Warburton
http://insightfullogic.com
@RichardWarburto <http://twitter.com/richardwarburto>
More information about the lambda-dev
mailing list