2013-07-04 50 views
2

,當我想在我的項目Eclipse導入掃描器類告訴我一些errore:無法使用掃描儀類的構造函數是不確定的,方法是未定義

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The constructor Scanner(InputStream) is undefined 
    The method nextLine() is undefined for the type Scanner 

,這是我的代碼:

import java.util.Scanner; 

public class Scanner { 

    public static void main(String[] args) { 

     Scanner myScanner = new Scanner(System.in); 
     System.out.println(myScanner.nextLine()); 

    } 

} 
+0

還是有錯誤? – gjman2

回答

9

的問題是,你也很聲明一個名爲Scanner類。這意味着當你然後聲明Scanner類型的變量並嘗試調用構造函數時,編譯器認爲你正在談論類。只要改變自己的類以別的東西(例如Test):

import java.util.Scanner; 

public class Test { 
    public static void main(String[] args) { 
     Scanner myScanner = new Scanner(System.in); 
     System.out.println(myScanner.nextLine()); 
    } 
} 

或者你當你的意思是java.util.Scanner只是完全限定的名字 - 但這將是在可讀性方面是一個壞主意。

// Please don't do this - but it would work. 
public class Scanner { 
    public static void main(String[] args) { 
     java.util.Scanner myScanner = new java.util.Scanner(System.in); 
     System.out.println(myScanner.nextLine()); 
    } 
} 
1

請改變你的類的名稱:

public class Scanner { 

一些其他的名字。編譯器無法將掃描器視爲java.util.Scanner,因爲它將其視爲您的類(它沒有此類構造函數或方法,因此它會給出錯誤信息)。

3

嘗試

java.util.Scanner myScanner = new java.util.Scanner(System.in); 

代替。否則,編譯器會嘗試實例化您的類,該類也被稱爲Scanner。或者只是將您自己的Scanner類重命名爲其他內容。

1

試圖改變你的類名稱,如:

import java.util.Scanner; 

public class ScannerTest { 

    public static void main(String[] args) { 

     Scanner myScanner = new Scanner(System.in); 
     System.out.println(myScanner.nextLine()); 

    } 

} 
0

你應該給類名作爲Java.So的不同,那麼API類只是改變類的名稱從ScannerScannerProgram

import java.util.Scanner; 

    public class ScannerProgram { 

    public static void main(String[] args) { 

     Scanner myScanner = new Scanner(System.in); 
     System.out.println(myScanner.nextLine()); 

    } 

} 
相關問題