public static int toInt(Object a)
{
return (int) a;
}
public static Object tInput()
{
return read.nextLine();
}
當我嘗試如何通過方法將對象轉換爲int?
public static void main (String []args)
{
System.out.println(toInt(tInput()));
}
我得到一個類轉換異常 - 即使我在數字輸入!整型!
我不知道我在做什麼錯。誰能幫忙?
====編輯====
人們說我不能施放它,因爲它是一個字符串。
我試過這種方法,這個工作。
有人可以解釋嗎?
public static void check()
{
Object h = 2014;
int a = (int) h;
System.out.println(a);
}
什麼是'read'和'nextLine'返回的是什麼? – rgettman
編輯中的代碼工作原因是存儲在'h'中的對象的運行時類型是'int'。你用來引用它的引用'h',是一個可以包含任何'Object'的引用。既然你給它賦了一個'int'值,那麼你可以將它轉換爲'int',因爲你正在將'int'轉換爲'int'。如果相反你做'對象h =「嗨,媽媽!」; int a =(int)h;'那麼你會得到一個類轉換異常,因爲你正試圖將'String'轉換爲'int'。 –
沒有將任意對象「鑄造」爲「int」的常用方法。 「cast」操作聲明被引用的變量具有被轉換爲的類型,或者(僅在基元的情況下)可以使用明確定義的技術轉換爲該類型。你顯然想要做的是將一個字符串轉換爲int。在這種情況下,將參數聲明爲String並使用Integer.parseInt。將參數聲明爲Object只會延遲到運行時間,這可能會在編譯時檢測到錯誤。 –