Kent Becks Book TDD by Exampleで作業しているときに、理解できない Java コードに遭遇しました。
public boolean equals(Object object) {
Dollar dollar= (Dollar) object;
return amount == dollar.amount;
}
Dollar dollar= (Dollar) object;
誰かが括弧の意味を説明してくれませんか?
これは明示的な typecastです。基本的には、「'object' は type で宣言されていますがObject
、実際には型であることはわかっているDollar
ので、変数 'dollar' に割り当てても問題ありません」ということです。
括弧がないと (実際には括弧であり、括弧はそれぞれ「角括弧」または「山括弧」のように見えます)、コンパイラはその行でエラーを報告します[]
。<>
オブジェクトを括弧内の型にキャストします。
object
あなたの例では、彼らはタイプであるべきJavaを伝えますDollar
関数はパラメーターにequals()
「Object」型を使用するため、実際にクラスのドル変数を伝えます。他の返信が言ったように、この表記法は型キャストと呼ばれ、ある変数を別の変数に割り当てるときに正しい型を使用していることを確認するために Java コンパイラによって使用されます。object
(Dollar) object
object
Dollar
価値のあることとして、初心者のプログラマーにとって、このようなことは非常に混乱するように思えるかもしれませんが、しばらくすると理解できるようになります。