为什么我们可以在java中用括号赋值?
我正在查看tomcat的java源代码,发现了如下代码为什么我们可以在java中用括号赋值?,java,Java,我正在查看tomcat的java源代码,发现了如下代码 String a = ("aa"); int b = (1); 它成功编译,而通常情况下,分配应该是 String a = "a"; int b = 1; 为什么第一段代码编译成功?从语法上讲,这些不是赋值:它们是带有初始值设定项的变量声明。(然而,就()而言,这并不是一个重要的区别) 带有初始值设定项的变量声明的(简化)形式为: Type name = expression; 任何兼容类型的表达式都可以出现在equals的右侧 ()
String a = ("aa");
int b = (1);
它成功编译,而通常情况下,分配应该是
String a = "a";
int b = 1;
为什么第一段代码编译成功?从语法上讲,这些不是赋值:它们是带有初始值设定项的变量声明。(然而,就
()
而言,这并不是一个重要的区别)
带有初始值设定项的变量声明的(简化)形式为:
Type name = expression;
任何兼容类型的表达式都可以出现在equals的右侧
()
生成一个带括号的表达式。发件人:
带括号的表达式是主表达式,其类型为包含表达式的类型,其运行时的值为包含表达式的值
因此,它的值与括号中的值相同
在这种情况下,没有任何理由使用
()
,但它们不会改变代码的含义。您有问题吗?我建议您在Tomcat源代码中添加指向几个示例的链接。