原始数据类型
Blob, Boolean, Integer, Long, Double, String, Date, DateTime, Id
Blob: 是可以存储在单一文件里的二进制类型。类似于Java里的Byte。
String str = 'Hello, world';
Blob binary = Blob.valueof(str);
String str2 = binary.toString();
System.debug('str :' + str);
System.debug('binary :' + binary.size());
System.debug('str2 :' + str2);
// str :Hello, world
// binary :12
// str2 :Hello, world
Boolean:
Boolean a = false;
Boolean b = null;
System.debug(a);
System.debug(b);
// false
// null
Integer: 32位的整数型
Integer i = 1;
Long: 64位的整数型
Long i = 2147483648L;
Double: 64位的浮点数
Double d=3.14159;
String: 字符串类型,基本上跟Java一样,但需要注意两点。
- 只能使用单引号来定义字符串。
- 字符串比较可以使用==, !=, <, >, <=, >=等符号。
- 字符串不区分大小写。
String hello1 = 'hello';
String hello2 = 'HELLO';
System.debug(hello1 == hello2);
// true
Date: 日期类型,不包含具体的时间。并且可以使用Integer进行日期的运算。
Date today = Date.today();
Date tomorrow = today + 1;
System.debug(today);
System.debug(tomorrow);
// 2017-04-20 00:00:00
// 2017-04-21 00:00:00
DateTime:
DateTime now = DateTime.now(); // 返回格林尼治时间
DateTime tomorrowEvening = now + 1.5;
System.debug(now);
System.debug(tomorrowEvening);
// 2017-04-20 05:14:44
// 2017-04-21 17:14:44
ID:
ID id = '00300000003T2PGAA0';
sObject型
集合类
List, Set, Map
List: 基本相当于Java中的列表。但注意以下几点
- List中最多嵌套4层List, 也就是说总共为5层。
- 在Apex中数组跟列表是同一个对象,操作方式也相同。
// 定义列表
List<Integer> myList = new List<Integer>(1);
String[] colors1 = new List<String>();
List<String> colors2 = new String[1];
String[] colors3 = new String[1];
// 添加元素
myList[0] = 123;
colors1.add('123');
// 访问元素
System.debug(myList[0]);
System.debug(colors1.get(0));
Set: 不能包含相同元素的列表。它只能保证不包含重复元素,不保证任何数序。因此不能使用下标对Set进行访问。
Set<String> mySet = new Set<String>();
mySet.add('abc');
mySet.add('def');
mySet.add('abc');
System.debug(mySet);
// {abc, def}
Map: 键值对的集合类。因Key不能出现重复元素,因此后加入的元素会替代已有的元素。
枚举
public enum Season {WINTER, SPRING, SUMMER, FALL}
Season e = Season.WINTER;
System.debug(e); // Winter