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,您正在查看将类型的变量转换为类型Key的变量的强制转换运算符QuotaKey。您可以在没有临时变量的情况下更简洁地编写相同的片段:

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的引用Key,我假设它是QuotaKey.

于 2012-06-19T21:36:09.890 回答