抱歉这个可怕的问题,不知道如何描述它,
我自然是 PHPer,我目前正在查看一些 java 并遇到此部分。第一行仅用于上下文,它是以我感兴趣的 QuotaKey 开头的行。
Key key = Keys.getKeyInstance( Keys.getKeyClass( cond.getKey( ) ) );
QuotaKey quotaKey = ( QuotaKey ) key;
抱歉这个可怕的问题,不知道如何描述它,
我自然是 PHPer,我目前正在查看一些 java 并遇到此部分。第一行仅用于上下文,它是以我感兴趣的 QuotaKey 开头的行。
Key key = Keys.getKeyInstance( Keys.getKeyClass( cond.getKey( ) ) );
QuotaKey quotaKey = ( QuotaKey ) key;
这是一个演员表,把 aKey
变成了QuotaKey
。
http://www.javabeginner.com/learn-java/java-object-typecasting
假设它QuotaKey
是 的子类Key
,您正在查看将类型的变量转换为类型Key
的变量的强制转换运算符QuotaKey
。您可以在没有临时变量的情况下更简洁地编写相同的片段:
QuotaKey quotaKey = (QuotaKey)Keys.getKeyInstance(Keys.getKeyClass(cond.getKey()));
此操作在key
将其类型强制为子类之前检查其类型是否正确,并导致ClassCastException
失败。尽量减少程序中此类转换的数量是一个好主意,因为在编译时无法可靠地检查它们的有效性。
这是一个演员表。它将密钥类型强制转换为 QuotaKey。
您正在查看的内容称为类型转换(在这种特殊情况下为向下转换),它只是使用类型的变量和类型QuotaKey
的引用Key
,我假设它是QuotaKey
.