2011-04-01 115 views
0

我得到以下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

好,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); 
} 

,並從呼叫者的getPennies()移除調用Integer.parseInt

0

Integer.parseInt需要輸入String,而不是int。沒有它就使用getPennies()。對於第二個錯誤,showInputDialog返回String,因此請使用parseInt函數。

0

parseInt()方法將字符串解析爲整數,輸入以字符串形式完成,因此將getPennies()的返回類型更改爲String可能會完成這項工作。

0

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

所以你有一個類型不兼容問題。