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

时间:2012-02-02 21:09:26

标签: 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);
    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)

6 个答案:

答案 0 :(得分:4)

您正在调用一个getInput()方法,该方法在您的类中不存在。看看这个关于I / O的Java教程:
http://docs.oracle.com/javase/tutorial/essential/io/cl.html

答案 1 :(得分:1)

"This is from Eclipse:

Exception in thread"
在使用“红色”标记编译文件之前,

Eclipse 应该已经警告过您。请在编译课程之前修复它们。

答案 2 :(得分:0)

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

http://www.roseindia.net/java/java-get-example/java-get-user-input.shtml

答案 3 :(得分:0)

试试这个

import java.io.*;



BufferedReader reader = new BufferedReader(System.in);
String input = reader.readLine();

答案 4 :(得分:0)

可能有什么不对:

  1. 方法getInput未在Main类
  2. 中实现
  3. getInput不是静态的,所以main看不到它(你可以将getInput改为静态方法)
  4. getInput没有String签名,因此它不将String作为参数

答案 5 :(得分:0)

你现在可能已经想到了这一点,但就像其他人所说的那样,看起来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方法接受您发送的字符串并将其称为“输出”。所以当你第一次调用它时输出=“输入第一个数字”。

然后创建一个名为“input”的Scanner对象,它允许您读取用户在键盘中输入的内容。

Scanner input = new Scanner(System.in);

然后将该输出消息发送给用户:

System.out.println(output);

最后,使用输入对象返回用户键入的String,该输入对象将读取用户键入的下一个内容。用户必须在输入后按Enter键。

return input.next();

如果您对发生的事情有任何疑问,请与我们联系。