当我们在同一个类中多次导入包时,Java会做什么?

Cod*_*lue 4 java

试试这段代码.它汇编.

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.");
   }
}
Run Code Online (Sandbox Code Playgroud)

编译器是否只是忽略了其他import语句?

ass*_*ias 12

是的,编译器认为它是冗余的,如JLS 7.5.2所规定的:

同一编译单元中的两个或多个type-import-on-demand声明可以命名相同的类型或包.除了其中一个声明之外的所有声明都被视为多余的 效果就好像该类型只导入一次.

注意:

  • "type-import-on-demand"是一个包导入: import somepackage.*;
  • 同样适用于单一类型导入:"如果两个单一类型导入声明[...]尝试导入[...]相同类型,则忽略重复声明."