找不到标志

时间:2011-04-01 19:04:39

标签: java compiler-errors

我收到以下java编译器错误:

main.java:9: cannot find symbol
symbol  : method parseInt(int)
location: class java.lang.Integer
        int count = Integer.parseInt(getPennies());
                           ^
main.java:23: incompatible types
found   : java.lang.String
required: int
            JOptionPane.showInputDialog("How many pennies do you have?");
                                       ^

2个错误

这是我的代码

import javax.swing.*;

class main {

public static void main(String args[]) {

    try {

        int count = Integer.parseInt(getPennies());
        System.out.println("You have "+count+" pennies");

    } catch (NumberFormatException exception) {

        System.out.println("Please insert a number");
        getPennies();
    }
}


public static int getPennies() {

    int input = 
            JOptionPane.showInputDialog("How many pennies do you have?");

    return input;
}
}

知道我为什么会收到这些错误吗?

4 个答案:

答案 0 :(得分:4)

好吧,getPennies()返回int,并且没有Integer.parseInt(int)这样的方法 - 我的想法是parseInt解析字符串而给出你是一个整数。

然后你有:

 int input = JOptionPane.showInputDialog("How many pennies do you have?");

...但showInputDialog返回一个字符串,而不是一个整数。

你可以通过改变这样的getPennis()来解决这两个问题:

public static String getPennies() {
  return JOptionPane.showInputDialog("How many pennies do you have?");
}

或者:

public static int getPennies() {
  String text = JOptionPane.showInputDialog("How many pennies do you have?");
  return Integer.parseInt(text);
}

并从Integer.parseInt来电者中移除对getPennies()的来电。

答案 1 :(得分:0)

Integer.parseInt需要String输入,而不是int。没有它就可以使用getPennies()。对于第二个错误,showInputDialog会返回String,因此请改用parseInt函数。

答案 2 :(得分:0)

parseInt()方法将字符串解析为整数,输入以字符串形式完成,因此将getPennies()的返回类型更改为String可能会完成此任务。< / p>

答案 3 :(得分:0)

方法JOptionPane.showInputDialog()会返回String而不是int

因此,您遇到类型不兼容问题。