これが何を意味するのか、何をしているのかよくわかりません。誰か詳しく説明してもらえますか?
Player player = (Player) sender;
これは、sender によって参照されるオブジェクトを受け取り、それを Player 型にキャストしようとします。Java オブジェクトは厳密に型指定されているため、オブジェクトの型を宣言する必要があります。
sender によって参照されるオブジェクトを Player オブジェクトにキャストできない場合は、InvalidCast に対して例外がスローされます。
これは昔ながらの Java 型キャストです。詳細については、JLSキャスティングの変換を参照してください。
sender
が a と型互換性があると仮定しPlayer
ます。
これは単純なJava型キャストです...
これはbukkit minecraft サーバー プラグインに含まれていますか? Player
そうである場合、それが行うことは、コマンドをオブジェクトに送信するプレーヤーを型キャストすることです。Player
オブジェクトは、コードで特定のプレーヤーをターゲットにするために使用されます。プレイヤー オブジェクトには、コマンドを送信したプレイヤーの名前が付けられます。
送信者をプレーヤーに「変換」することを読んだ場合、文字通りそれらを変換するとは思わないでください。
多くの異なるものである可能性のある変数を渡すことが何度もあり、それが何であるかを理解したら、キャスト演算子を使用して実際にそれらのものの1つを作成します。
不完全な類推は次のとおりです。
地元のコンピューター クラブの会長から電話がかかってきたとします。彼は、クラブのメンバーが何かについてあなたに会いに来ると言っています。
さて、あなたはどのメンバーが来るのか、それが女性なのか男性なのか、何歳なのか、名前でさえもわからず、将来の訪問者の属性については何も知りません.
彼らがあなたのドアに現れると、あなたはあなたの相棒のフランクに気づきます.今、あなたの心の中で、上記のコードの「訪問者」(送信者)は「フランク」にキャストされています。 、住所など
CAST の前は、送信者についてほとんど知りませんでしたが、キャスト後は新しいオブジェクトのあらゆる種類の情報にアクセスできるようになりました。これは、その TYPE がわかっているためです。
お役に立てれば。
送信者を Player オブジェクトに変換します。そうしないと、プレーヤーのデータ型が送信者のデータ型と一致しません。通常、sender を最初にサブクラスとして宣言できた場合に行われます。
これは操作を伴う代入cast
です。