5

What real (i.e. practical) difference between a normal import statment and static import statement?

import static java.lang.System.*;    
class StaticImportExample{  
  public static void main(String args[]){  

   out.println("Hello");
   out.println("Java");  

 }   
}  

import java.lang.System.*;    
class StaticImportExample{  
  public static void main(String args[]){  

   System.out.println("Hello"); 
   System.out.println("Java");  

 }   
}  
2

2 Answers 2

6

From java 5 onwards static import was introduced. Practically "import static" is used to reduce the number of keystrokes, which means that you need not to write the class name for a static member that you want to use.

As in your example, with import static java.lang.System.* you only need to write out.println("Hello"); whereas normally you have to write System.out.println("Hello"); i.e we have to write the class name(System) every time we need to call the static member(out) of it.

Sign up to request clarification or add additional context in comments.

Comments

1

In addition to @venkatesh's answer, it is worth pointing out the javadoc documentation about when should static import be used?

So when should you use static import? Very sparingly! Only use it when you'd otherwise be tempted to declare local copies of constants, or to abuse inheritance (the Constant Interface Antipattern). In other words, use it when you require frequent access to static members from one or two classes. If you overuse the static import feature, it can make your program unreadable and unmaintainable, polluting its namespace with all the static members you import. Readers of your code (including you, a few months after you wrote it) will not know which class a static member comes from. Importing all of the static members from a class can be particularly harmful to readability; if you need only one or two members, import them individually. Used appropriately, static import can make your program more readable, by removing the boilerplate of repetition of class names.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.