CodeBlue
CodeBlue

Reputation: 15409

What does Java do when we import packages multiple times in the same class?

Try this piece of code. It compiles.

import java.io.*;
import java.io.*;
import java.io.*;

import java.util.*;
import java.util.*;
import java.util.*;

import javax.swing.*;
import javax.swing.*;
import javax.swing.*;


public class ImportMultipleTimes
{
   public static void main(String[] args)
   {
      System.out.println("3 packages imported multiples times in the same class.");
   }
}

Does the compiler simply ignore the additional import statements?

Upvotes: 6

Views: 1940

Answers (1)

assylias
assylias

Reputation: 328913

Yes, it will be considered redundant by the compiler, as specified by the JLS 7.5.2:

Two or more type-import-on-demand declarations in the same compilation unit may name the same type or package. All but one of these declarations are considered redundant; the effect is as if that type was imported only once.

Note:

  • "type-import-on-demand" is a package import: import somepackage.*;
  • the same applies for single-type-import : "If two single-type-import declarations [...] attempt to import [...] the same type, [...] the duplicate declaration is ignored."

Upvotes: 13

Related Questions