0

恐ろしい質問で申し訳ありません。他にどのように説明すればよいかわかりません。

私は当然PHPerであり、現在Javaを調べていて、このセクションに出くわしました。最初の行はコンテキストのためだけにあり、私が興味を持っているのは QuotaKey で始まる行です。

Key key = Keys.getKeyInstance( Keys.getKeyClass( cond.getKey( ) ) );  
QuotaKey quotaKey = ( QuotaKey ) key;
4

4 に答える 4

3

これはキャストであり、 aKeyを に変換しQuotaKeyます。

JLS 15.16、キャスト式

http://www.javabeginner.com/learn-java/java-object-typecasting

于 2012-06-19T21:35:06.877 に答える
2

QuotaKeyが のサブクラスであると仮定すると、 型の変数を 型のKey変数に変換するキャスト演算子を見ています。一時変数を使用せずに、同じフラグメントをより簡潔に書くことができます。KeyQuotaKey

QuotaKey quotaKey = (QuotaKey)Keys.getKeyInstance(Keys.getKeyClass(cond.getKey()));

この操作はkey、型をサブクラスに強制する前に、型が正しいことを確認し、ClassCastException失敗の原因となります。コンパイル時に有効性を確実にチェックできないため、プログラム内のそのようなキャストの数を最小限に抑えることをお勧めします。

于 2012-06-19T21:38:16.967 に答える
1

キャストです。キーのタイプを QuotaKey に強制します。

于 2012-06-19T21:36:07.953 に答える
0

あなたが見ているのは型キャスト(この特定のケースではダウンキャスト)と呼ばれ、私が仮定するQuotaKey型の参照で型の変数を使用することです のスーパークラスまたはスーパーインターフェースです。KeyQuotaKey

于 2012-06-19T21:36:09.890 に答える