Java Can';t使用Scanner类,构造函数未定义,方法未定义

Java Can';t使用Scanner类,构造函数未定义,方法未定义,java,eclipse,Java,Eclipse,当我想在我的项目eclipse中导入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()); }

当我想在我的项目eclipse中导入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());

    }

}

问题是您还声明了一个名为
Scanner
的类。这意味着,当您随后声明类型为
Scanner
的变量并尝试调用构造函数时,编译器认为您在谈论您的类。只需将您自己的类更改为其他类(例如,
Test
):

或者,如果您的意思是
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());
    }
}

请更改类的名称:

public class Scanner {
换个名字。编译器无法将Scanner视为
java.util.Scanner
,因为它将其视为您的类(该类没有此类构造函数或方法,因此它会向您提供有关它的错误通知)。

试试看

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

相反。否则,编译器将尝试实例化类,该类也称为
Scanner
。或者将您自己的
扫描仪
类重命名为其他类。

尝试更改您的类名,例如:

import java.util.Scanner;

public class ScannerTest {

    public static void main(String[] args) {

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

    }

}

您应该将类名指定为与Java的API类不同的名称。所以只需将类名从
Scanner
更改为
ScannerProgram

import java.util.Scanner;

     public class ScannerProgram {

    public static void main(String[] args) {

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

    }

}
import java.util.Scanner;

public class ScannerTest {

    public static void main(String[] args) {

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

    }

}
import java.util.Scanner;

     public class ScannerProgram {

    public static void main(String[] args) {

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

    }

}