Java 未解决的编译问题:未为Main类型定义getInput(String)方法

Java 未解决的编译问题:未为Main类型定义getInput(String)方法,java,Java,也许我忘了一个重要的东西,但似乎什么都不管用。我正在努力学习java,但仍然是初学者 public class Main { public static void main(String[] args) { String s1=getInput("Enter First Number") ; String s2=getInput("Enter second Number"); double d1=Double.parseDouble(s1); doub

也许我忘了一个重要的东西,但似乎什么都不管用。我正在努力学习java,但仍然是初学者

public class Main {

    public static void main(String[] args) {
    String s1=getInput("Enter First Number") ;
    String s2=getInput("Enter second Number");

    double d1=Double.parseDouble(s1);
    double d2=Double.parseDouble(s2);
    double result=d1+d2 ;
    System.out.println(result);

 }}
导致错误,因为编译器无法识别
getInput(“”)

这是来自Eclipse的:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
        The method getInput(String) is undefined for the type Main
        The method getInput(String) is undefined for the type Main

        at Main.main(Main.java:8)

这是因为没有定义getInput。看看这个例子,看看如何从用户那里获取输入

您正在调用一个类中不存在的getInput()方法。看看这个关于I/O的Java教程:
试试这个

import java.io.*;



BufferedReader reader = new BufferedReader(System.in);
String input = reader.readLine();
可能有什么问题:

  • 方法getInput未在主类中实现
  • getInput不是静态的,所以main看不到它(您可以将getInput更改为静态方法)
  • getInput没有字符串签名,因此它不将字符串作为参数

  • Eclipse应该在编译带有“红色”标记的文件之前警告您这一点。请在编译类之前修复它们。

    您现在可能已经解决了这个问题,但正如其他人所说,getInput似乎还没有实现。这意味着您还没有告诉程序getInput的实际功能。您需要一个导入,并添加getInput方法,如下所示:

    import java.util.Scanner;
    public class Main {
    
        public static void main(String[] args) { 
            String s1=getInput("Enter First Number") ; 
            String s2=getInput("Enter second Number"); 
    
            double d1=Double.parseDouble(s1); 
            double d2=Double.parseDouble(s2); 
            double result=d1+d2 ; 
            System.out.println(result); 
    
        }
        private static String getInput(String output)
        {
            Scanner input = new Scanner(System.in);
            System.out.println(output);
            return input.next();
        }
    }
    
    这里的getInput方法接受您发送的字符串并将其调用为“output”。因此,在您第一次调用它时,output=“Enter First Numer”

    然后创建一个名为“input”的扫描仪对象,它将允许您读取用户在键盘上键入的内容

    Scanner input = new Scanner(System.in);
    
    然后将该输出消息发送给用户:

    System.out.println(output);
    
    最后,使用输入对象返回用户键入的字符串,该对象将读取用户键入的下一个内容。用户必须在键入后按enter键

    return input.next();
    

    如果你对那里发生的事情有任何疑问,请告诉我。

    为什么我不能编辑这篇文章?因为你还不够冷静。@Adrian你没有足够的声誉。您的编辑进入一个队列,该队列由那些有足够声誉的人批准或拒绝。请看@Ktash,我现在可以编辑它了(链接出现了)。我的代表是same@Adrian该链接之所以存在,是因为您可以编辑它,它只是进入一个队列,只有在获得足够声誉的人的批准或拒绝之前才会显示给您。您可以在未经批准的情况下在2000年进行编辑。如果您还有任何问题,我会查看,或者我们可以将其移动到。您能给我一个方法,让我的代码在不使用readBuffer的情况下工作,请让我让我的代码在不使用readerBuffer的情况下工作,如何让main知道itRoseindia.net是代码示例中显示的“最佳实践”中最差的在线Java资源之一。相反,请参考Oracle自己的教程。因此,请给我一种方法,使其得到main的认可
    return input.next();