2012-08-28 21 views
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."); 
    } 
} 

編譯器是否簡單地忽略其他導入語句?

+0

你是怎麼想到這個的? –

+0

**是**它會被編譯器視爲冗餘 –

回答

12

是的,這將被由編譯器認爲是多餘的,如由JLS 7.5.2指定:

兩種或多種類型的導入點播聲明在相同的編譯單元可以命名相同類型或包。所有這些聲明都被認爲是多餘的;效果就好像該類型僅導入一次。

注:

  • 「型導入點播」是一個包導入:import somepackage.*;
  • 同樣適用for single-type-import「如果兩個單型進口報關手續[.. 。]嘗試導入相同類型,[...]重複聲明被忽略。「
相關問題