2016-10-03 84 views
1

使用Java類型變量的初始化我看到這個代碼:括號,沒有分號

Integer statusCode = (Integer) 

奇怪,這是我第一次看到這句法。 任何人都可以解釋這一點嗎?

爲什麼在行尾沒有分號?

如果您將類型或類放在括號中,意味着什麼?

這樣使用它有什麼好處?

編輯:一些答案提到,或者代碼不完整或者給出編譯時錯誤,但我已經嘗試過它的工作原理!實際的代碼是從這個頁面:https://www.tutorialspoint.com/servlets/servlets-exception-handling.htm

+5

括號中的類型用於鑄造。但是,這一陳述並不完整。也許是一個多線程,這將解釋缺少的分號。 –

+0

我很確定它沒有分號。實際的代碼在這裏:https://www.tutorialspoint.com/servlets/servlets-exception-handling.htm –

+2

像其他人一樣猜測,你鏈接的代碼有'Integer statusCode =(Integer)NEWLINE request.getAttribute(「javax .servlet.error.status_code「);',即它分成兩行。 Java認爲它就像在一條線上。所以它採用'request.getAttribute(...)'的結果,將其轉換爲'Integer',並將其分配給'statusCode'變量。 – Robert

回答

1

此代碼是無效的,並會導致錯誤。

在括號中的類型或類別的用於鑄造一目的:

Object o = "str"; 
String str = (String)o; 

實施例從:https://stackoverflow.com/a/5289493/4585226

鑄造的一個好處是,可以用它作爲類型/類,你是鑄造它來。就像在這個答案中顯示的例子一樣。你現在可以使用該對象作爲字符串。

+0

檢查此頁:https://www.tutorialspoint.com/servlets/servlets-exception-handling.htm 複製粘貼的代碼,它實際上沒有任何錯誤的工作。 –

1

事實上,你提到的語法會導致編譯時錯誤。 但是,您提到的是類型轉換的示例,但它確實需要使用類型轉換才能轉換的值。

例如: -

Integer val = (Integer) 2; 
+0

不幸的是,它不會導致錯誤,它的工作原理。點擊此處查看:https://www.tutorialspoint.com/servlets/servlets-exception-handling.htm 複製粘貼的代碼,它實際上沒有任何錯誤。 –

+1

您提到的鏈接包含用於在多行內進行類型轉換的語法。看下一行,它包含完整的語句。乾杯! – deepansh2323

+0

剛剛意識到這一點。 –