在使用Kent Becks Book TDD by Example 时,我遇到了一些我不理解的Java代码。
public boolean equals(Object object) {
Dollar dollar= (Dollar) object;
return amount == dollar.amount;
}
有人可以向我解释Dollar dollar= (Dollar) object;
中的括号是什么意思吗?
答案 0 :(得分:6)
这是explicit typecast。基本上它说'虽然'对象'是用类型Object
声明的,但我知道它实际上是类型Dollar
所以可以将它分配给变量'dollar'“。
没有括号(实际上,这些是括号,括号看起来像[]
或<>
,取决于它们分别是“方括号”还是“尖括号”,编译器会报告错误在那条线上。
答案 1 :(得分:1)
他们将对象转换为括号中的类型。
在您的示例中,他们告诉java object
应该是Dollar
答案 2 :(得分:0)
由于equals()
函数对object
参数使用“对象”类型,(Dollar) object
告诉美元变量object
确实是Dollar
}类。正如其他回复所说,符号称为类型转换,Java编译器使用它来确保在将一个变量分配给另一个变量时使用正确的类型。
对于它的价值,作为一个新手程序员,这些东西看起来很混乱,但它确实在一段时间后开始陷入困境。