所以我有一個簡單的類叫Date
有3個數據成員和一個單獨的類Driver
;並且我試圖在我的設置類Date
的方法中用try-catch塊錯誤地檢查輸入。使用try-catch塊的問題
public void setDate(int month, int day, int year)
{
try
{
dMonth = month;
dDay = day;
dYear = year;
}
catch (InputMismatchException imeR)
{
System.out.println("Wrong input type");
}
}
但是,當我編譯類Drive
...
public class Driver
{
public static void main (String[] args)
{
Date zeroDate = new Date();
System.out.println(zeroDate.getMonth());
zeroDate.setDate(4,4,4);
System.out.println(zeroDate.getMonth());
zeroDate.setDate(4,4,"string");
}
}
...,我得到以下錯誤:
Driver.java:14: error: incompatible types: String cannot be converted to int
zeroDate.setDate(4,4,"ted");
其他一切工作正常,當我發表評論出線...
zeroDate.setDate(4,4,"string");
...,我可以操縱類日期就好了。
這是我第一次嘗試try-catch塊。有人可以解釋我缺少的東西嗎?
在你的setDate方法
Java不會自動將'String'轉換爲'int'。你必須使用一種方法來做到這一點。在'Integer'類中有一些方法可以爲你做到這一點。類文檔位於[此鏈接](http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html)。還要注意,調用你的解析方法的方法是你必須放置catch的方法。 'setDate'只是移動'int'而不做任何解析,所以把'catch'塊放在那裏是錯誤的。 – ajb 2014-11-05 02:02:35