2010-09-10 117 views
3

我试图将一个Object类型的对象转换为FontUIResource类型。在Java中,这将是转换类型

FontUIResource font = (FontUIResource)value 

我该怎么做在斯卡拉?

回答

6

你可以说value.asInstanceOf[FontUIResource],或者你可以用一根火柴-case块:

value match{ 
    case f:FontUIResource => 
    //do something with f, which is safely cast as a FontUIResource 
    case _ => 
    //handle the case when it's not the desired type 
} 
+0

这里说明的'case'的种类本质上是一个'isInstanceOf' /'asInstanceOf'对的语法糖,赋值给匹配变量(本例中为'f')。应该清楚为什么'match'形式比is/as代码更可取。 – 2010-09-10 03:42:23

3

你的意思是铸造,而不是拳击和拆箱,因为它适用于原始值。 value.asInstanceOf[FountUIResource]是在Scala中进行投射的方法。

+1

原始值,而不是数字。 – Synesso 2010-09-10 03:30:25