2016-10-03 92 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

刚刚意识到这一点。 –