I am rewriting a Java book for beginners, and it seems to make so much sense to use

import static java.lang.System.out;

public class Greeting
{
   public static void main(String[] args)
   {
      out.println("Hello, World!");
   }
}

static.jpg

I would no longer have to dissect the awfulSystem.out.println("Hello, World!") expression. (Ok, boys and girls. System is a class.System.out is a static field of typePrintStream. That's another class. What is static, you ask? It's what a TV set makes when it doesn't get a signal. No, it's what you don't want in your dryer. Ok, whatever it is, you don't ever want to do it in your code, unless it is alsofinal. That means, you can't change it. Oh, you spotted System.setOut. Next question?)

Ditto with mathematical expressions. Doesn't

sin(angle * PI / 180)

look so much nicer than

Math.sin(angle * Math.PI / 180)

Ok, at least to that tiny fraction of the population who knows trigonometry...

The fact is, I don't recall ever seeing anyone using static import outside JUnit 4, where it is justifiably popular to importorg.junit.Assert.*.

I made a Google search, only to find a sensible blogwhose comments were filled with rants that static imports are the work of the antichrist, something on static imports in C#, a recommendation to use it rarely, and the usual certification garbage (hereand here).

I am trying to get the reaction of the average Java coder here. Have you switched from System.out to outwith a static import? Would you think it weird to look at other people's code that did that? Or would you welcome it?