Static Import in Java: New way to Import things in Java!

java logoStatic Import is a new feature added in Java 5 specification. Java 5 has been around the corner for some time now, still lot of people who are new in Java world doesn’t know about this feature.

Although I have not used this feature in my work, still it is interesting to know about.

What is Static Import?

In order to access static members, it is necessary to qualify references with the class they came from. For example, one must say:

double r = Math.cos(Math.PI * theta);
or
System.out.println("Blah blah blah");

You may want to avoid unnecessary use of static class members like Math. and System. For this use static import. For example above code when changed using static import is changed to:

import static java.lang.System.out;
import static java.lang.Math.PI;
import static java.lang.Math.cos;
...
double r = cos(PI * theta);
out.println("Blah blah blah");
...

So whats the advantage of using above technique? Only advantage that I see is readability of the code. Instead of writing name of static class, one can directly write the method or member variable name.

Also keep one thing in mind here. Ambiguous static import is not allowed. i.e. if you have imported java.lang.Math.PI and you want to import mypackage.Someclass.PI, the compiler will throw an error. Thus you can import only one member PI.

Happy importing.. :)

Further Reading: Varargs in Java

Get our Articles via Email. Enter your email address.

You may also like...

9 Comments

  1. CJ says:

    Why bother importing Math.PI and Math.cos if you don’t save anything in the code ( Math.cos(Math.PI * theta) ?

    • Java dude says:

      Rightly pointed, Some cases I prefer to prefix name of Class but sometime it unnecessary bloat the code e.g.consider calling methods like assertNull from Junit as Assert.assertNull(), nothing wrong but I still like former one. Some more usecase discussed on where to use static import in Java

  2. Viral Patel says:

    Thanks for pointing out the error. I have changed the code. (Copy/Paste effect ;-))

  3. Madhukar says:

    Looks like a fun little feature.

  4. Harshit says:

    I agree, but if in single class there are too many static imports, it will be real difficult to know which function belongs to which class. This will make readability bit diificult.

  5. Mukesh Koshy M says:

    What are the benfits of static import. :)

  6. sunil says:

    good. keep it up

  7. Samad says:

    cool. -:D

  8. Drushan says:

    Nice post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.