这个Java构造意味着什么 - OneClass对象=(OneClass)anotherObject;

时间:2012-06-19 21:33:32

标签: java

抱歉这个可怕的问题,不知道怎么形容它,

我自然是一个PHPer,我目前正在查看一些java并且遇到了这个部分。第一行就是上下文,它是以我感兴趣的QuotaKey开头的行。

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

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

假设QuotaKeyKey的子类,您正在查看一个转换运算符,它将类型Key的变量转换为QuotaKey类型的变量。如果没有临时变量,您可以更简洁地编写相同的片段:

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

此操作在将其类型强制转换为子类之前检查key是否为正确类型,并在失败时导致ClassCastException。最好尽量减少程序中此类强制转换的数量,因为在编译时无法可靠地检查它们的有效性。

答案 2 :(得分:1)

这是演员。它将密钥类型强制转换为QuotaKey。

答案 3 :(得分:0)

你所看到的被称为类型转换(在这种特殊情况下是向下转换),它只是使用QuotaKey类型的变量和Key类型的引用,我假设它是一个QuotaKey的超类或超接口。