salesforce之apex开发1---基本类型与常用方法
下面是笔者自己做salesforce开发整理的知识点,如果有不详细的,可以参照https://developer.salesforce.com,查看salesforce开发文档。
基本类型:
1.Integer : salesforce中的整型都是 signed int (有符号的整型),即范围在2^31-1 ~ -2^31(2147483647 ~ -2147483648)。
2.Long : 跟其他语言中的long类型一样的,范围:2^63-1 ~ -2^63
3.Decimal : 带有小数的数。文档上提了一句在salesforce中sObject上有个Currency(货币)类型,会自动转成decimal类型。
4.Double : 注意一点,科学记数法e在double中不可用
5.Boolean : 布尔类型
6.String : 字符串类型,salesforce中字符串类型跟java中有所不同,它直接提供了比较操作,因此你可以直接通过==,!=,<,<=,>和>=进行比较操作。例如:'ab'>'ac' //false
7.Date:日期类型,只包含年月日。
8.DateTime: 日期时间类型,不仅包含年月日,还有时分秒。
9.Time:时间类型
10.Blob:二进制存储类型,一般用于接收上传的附件文档之类,注意我们在项目中一般把该字段定义为瞬时变量,即用transient去申明,这样就不会作为一个Visualforce则页面视图状态的一部分发送实例变量。(由于页面视图有大小限制)
11.ID:该类型是Salesforce独有的类型,用于表示salesforce的sObject的18位id标识。当你用ID类型申明,并设置了一个15位的id,apex会自动给你转化为18位。
常用方法:
1.字符串转换为Integer类型的方法,valueOf(),例如:
Integer.valueOf('12'); //12; Integer.valueOf('12a'); //throw TypeException
2.Long类型转换为int型方法,intValue(), 例如:
Long curLong = 71; Integer myInt = curLong.intValue(); //71
3.Decimal类型:
a. valueOf(),转换为Decimal类型。例如:
Decimal.valueOf('12.3'); //12.3 ; Decimal.valueOf(12.3); //12.3
b. abs(),绝对值。例如:
Decimal.valueOf('12.3'); //12.3 ; Decimal.valueOf(12.3); //12.3
c. intValue() 取整。例如 :
Decimal d = 2.6; d.intValue(); //2
d. round() 四舍五入。 例如:
Decimal d = 2.6; Long myLong = d.round(); //3
4. Boolean 类型: valueOf(),转换为布尔型的方法。例如:Boolean.valueOf('false'); //false
5. String 类型:
a. valueOf(),转换为String类型的方法。例如:
String.valueOf(12); // '12';
b. contains(),查看字符串是否包含某个指定字符串的方法。例如:
String str1 = 'abc'; String str2 = 'a'; str1.contains(str2); //true
c. startsWith(),字符串是否是以某个给定的字符串开头。例如:
String str1 = 'abc'; String str2 = 'a'; str1.startsWith(str2); //true
d. endsWith(),字符串是否是以某个给定的字符串结尾。 例如:
String str1 = 'abc'; String str2 = 'bc'; str1.endsWith(str2); //true
e. toUpperCase(),转为大写。例如:
String str = 'Ab1'; str.toUpperCase(); //AB1
f. toLowerCase(),转为小写。例如:
String str = 'Ab1'; str.toUpperCase(); //AB1
g. length(),字符串长度。例如:
String str = 'Ab1'; str.length(); //3
h. replace(),替换字符串匹配内容。例如:
String str = 'abcabc'; str.replace('bc','*'); // a*a*
i. split(),把字符串根据指定字符串拆分成List集合。例如:
String str='a:b:c'; List <String> strList = str.split(':');//(a,b,c)
j. trim(),把字符串前后的空格去掉。例如:
String str = ' ab'; str = str.trim(); // 'ab'
k. indexOf(),获取字符串与给定字符串第一次匹配的下标,没有匹配则为-1。例如:
String str = 'abcd'; Integer num = str.indexOf('ab'); //0
l. lastIndexOf(),获取字符串与给定字符串最后一次匹配的下标,没有则为-1。例如:
String str = 'abcd'; Integer num = str.lastIndexOf('cd'); // 2
m. substring(),截取字符串中给定下标之间的字符串。例如:
String str = 'abcd'; str.substring(1,3); //bc
6.Date类型:(Date和DateTime的方法有很多,我这边就介绍几个常用的方法,还有在文档中都有介绍)
a. newInstance(),创建Date。例如:
Date d = Date.newInstance(2016,9,12); //2016-9-12
b. day(),获取日期中的日。例如:
Date d = Date.newInstance(2016,9,12); d.day(); //12
c. month(),获取日期中的月份。例如:
Date d = Date.newInstance(2016,9,12); d.month(); //9
d. year(),获取日期中的年份。 例如:
Date d = Date.newInstance(2016,9,12); d.year(); //2016
e. daysBetween(),获取两个日期之间相差的天数。例如:
Date startDay = Date.newInstance(2016,9,12); Date endDay =Date.newInstance(2016,10,2); startDay.daysBetween(endDay); //20
f. addDays(),添加天数。例如:
Date d = Date.newInstance(2016,9,12); d.addDay(3); //2016-9-15
7.DateTime: (DateTime跟Date的方法差不多,这下面是DateTime独有的)
a. getTime(),获得的是从1970-01-01 00:00:00到计算时间的经过的毫秒数。例如:
DateTime d = Date.newInstance(2016,9,12,8,0,0); d.getTime(); //1473681600000