课程章节介绍
同学,咱们今天聊聊Apex里的类型转换。Apex在类型转换上是非常严格的,你可别想着它能随便帮你自动转来转去,大部分情况下,你得明明白白告诉它:“我要把这个类型转成那个类型。”
不过呢,数字类型有一个自己的小王国,它们有个高低顺序,从低到高依次是:Integer(整数),然后是Long(长整数),再是Double(双精度浮点数),最高的是Decimal(高精度小数)。如果一个数字类型的变量,是低级别的,比如Integer,它可以随意赋值给高级别的类型,比如Long或者Double,反过来可不行。这就是隐式转换,不用你写任何代码,系统自动帮你处理。
其实,这种自动的隐式转换,Apex只允许很少的几种情况。我给你数一数:从Integer到Long,Integer到Double,还有Long到Double,这几种数字升级是允许的。另外,所有数字类型,当你用加号和一个字符串连接时,它们会自动转成String。比如说,`'编号' + 123` 这样写,123就会变成字符串。还有,ID类型可以隐式转成String,反过来String也能隐式转成ID,但要注意,String转ID时,运行时会检查格式是不是合法的18位或15位ID,不对的话就会报错。
除了上面说的这寥寥几种,其他所有转换都必须用显式的方法。你得分清楚,显式转换常用的有这几个:`String.valueOf()`可以把各种东西变成字符串;`Decimal.valueOf()`能把字符串转成Decimal;还有`Integer.valueOf()`或者直接用`.intValue()`把其他数字截断成整数。这些方法得根据你要转换的源类型和目标类型来选。
记住这个原则:级别低的数字自动能升到高级别,但要把高级别数字压到低级别,或者数字和字符串来回倒,必须用显式方法,ID跟字符串互相转虽然隐式也行,但最好也养成显式的习惯,代码可读性会更好。好了,这就是Apex类型转换的核心,遇到具体情况再查查具体方法就行。
关键词
Apex
Salesforce
Developer Guide