Static Import in java with examples| Difference between static vs normal import
This tutorials shows you static import feature.
Static Import introduced in Java 1.5 version
Static import is a Java language feature introduced in version 5, code-named as tiger version. Its purpose is to simplify the access of static variables and members without using class names.
Before the introduction of static import, normal import statements were used for every Java class to access methods and classes with the class name. For example, a normal import for the List class looked like this
import java.util.List
How Java Code Looked Before the Static Import Feature In traditional Java coding, to use any static
member variables or a method of a class, you had to first import that class using the normal import keyword. After that, variables/methods were used with the class name in the code (e.g., Math.E
).
Below is an example of normal import usage accessing member variables using a qualified class name:
import java.lang.*;
public class ImportDemo {
public static void main(String args[]) {
System.out.println("This is a sample program without
using static import functionality" + Math.E);
}
}
In this program,
- The
System
andMath
classes from thejava.lang
package are used. - In Java programs, there’s no need to explicitly import the
java.lang
package, as it is imported by default. - The
java.lang
package is imported for tutorial purposes.
static import example
Now, let’s see an example of the static import
feature. With static import
, you can use static
member variables of java.lang.System
and java.lang.Math
classes without a qualified class name.
import static java.lang.System.*;
import static java.lang.Math.*;
public class ImportDemo {
public static void main(String args[]) {
out.println("This is a sample program without
using static import functionality" + E);
}
}
Here, out
is a static field in the java.lang.System
class, and E
is a static member variable for the java.lang.Math
class.
It is a recommended to define for each static member(Math.E) instead of all static members(Math.*
) in the static import declaration.
Static Import Advantages
- It allows calling static members without using the class name in the code.
- Code statements with static import make all static members of that class available to declare in a Java class.
- Static import can be used for static member variables as well as static members without referring to the class name, improving code readability for constants.
- It simplifies the code readability for the constants.
Static Import Disadvantages
If two same static constants are imported from different classes in the same class, there’s a possibility of ambiguity, leading to a compiler error.
Difference Between Static Import and Normal Import
The fundamental difference is that normal import allows calling member variables using the class name in the package, while static import allows defining and using static member fields directly without referring to any class name.
Static Import | Normal Import |
---|---|
Improved readability | Clean code |
No performance improvements | No performance improvements |
Only applies to static members | Applies to all types |
Conclusion
In conclusion, we’ve learned about the static import feature introduced in Java 1.5. This syntax improvement enhances code readability and cleanliness. Additionally, we’ve posted the advantages and disadvantages and compared this with a normal import example.