Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

java

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?

like image 653
CodeBlue Avatar asked Dec 15 '22 20:12

CodeBlue


1 Answers

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."
like image 97
assylias Avatar answered Jan 26 '23 00:01

assylias