我收到以下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;
}
}
知道我为什么会收到这些错误吗?
答案 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
。
因此,您遇到类型不兼容问题。