Apex简介

2017-10-22  本文已影响0人  程程哥

Apex特点

Salesforce为开发者提供了Apex语言。它是一种语法上类似于Java的编程语言,有以下特点:

Apex的数据类型

Apex中的数据类型分为以下几种:

基本类型中要注意的地方

集合类型的初始化语法

// List类型
List<String> exampleList = new List<String>();
List<String> exampleList = new List<String> {'Hello', 'World'};
List<String> exampleList = new String[20];
String[] exampleList = new String[20];

// Set类型
Set<String> exampleSet = new Set<String>();
Set<String> exampleSet = new Set<String> {'Hello', 'World'};

// Map类型
Map<ID, Set<String>> exampleMap = new Map<ID, Set<String>>();
Map<String, String> MyStrings = new Map<String, String> {'a' => 'b', 'c' => 'd'.toUpperCase()};

列表类型List

List类型是最常用的一种集合类型,和数组等价,可以相互转换。

用add()函数可以向列表中添加元素:

List<String> shapes = new List<String> { 'circle', 'rectangle', 'triangle' };

shapes.add('square');

从列表中读取元素可以通过索引的方式,每个列表的索引都是从0开始。

读取元素可以直接用方括号加索引,或者用get()函数加索引:

String shape1 = shapes[0];
String shape2 = shapes.get(1);

for(Integer i=0; i<shapes.size(); i++) {
    // 将内容输出到控制台
    System.debug(shapes[i]);
}

集合类型要注意的部分

Set<String> exampleSet = new Set<String> {'a', 'b'};
Boolean result1 = exampleSet.contains('a'); // result1为真
Boolean result2 = exampleSet.contains('c'); // result2为假
Map<String, String> exampleMap = new Map<String, String> {'a' => 'b', 'c' => 'd'};

String result1 = exampleMap.get('a'); // result1的值为'b'

exampleMap.put('a', 'e');

String result2 = exampleMap.get('a'); // result2的值为'e'

常量定义

Apex中使用final关键字定义常量,比如:

public class ExampleClass {
    public static final Integer EXAMPLE_INT_CONST = 200;
}

类型转换

Apex中默认是要求显式类型转换的,比如Integer类型不能直接转换为String类型,而需要使用String类的format()函数。

但是有一些例外:

Integer i = 10;
Long l = i;
Double d = l;
Decimal decm = d;
String exampleString = 'abcde';
ID exampleId = exampleString; // 运行时会提示异常,因为字符串的值不是合法的ID类型的值
String str = 'abcde';
Boolean result = str instanceOf Account; // 检查字符串str的值是否代表了一个合法的Account对象的ID。这种情况下result的值为假

Apex的类(Class)

和大部分编程语言一样,Apex中可以定义类。类的内部可以定义函数和变量,也可以通过public等关键字控制访问权限。

public class Student { 
    public String name;
    private String studentNumber;

    public String showName() {
        return name;
    }

    public String getNumber() {
        return studentNumber;
    }

    private void setNumber(String num) {
        studentNumber = num;
    }
}

在Apex中,类和类中的方法默认都是private的。如果想让它们变为公有,必须添加public关键字。

类的扩展

使用extends关键字可以扩展类,比如:

public class BaseClass {
    ...
}

public class ExtendedClass extends BaseClass {
    ...
}

共享关键字

在Apex中,每一个类都可以添加共享关键字,即“with sharing”和“without sharing”。

当加入了“with sharing”关键字后,在用户执行该类的时候,系统会参照当前用户的共享权限来决定代码是否执行成功。如果用户对于代码中涉及到的对象、字段没有权限,则该代码会执行失败。

匿名代码段

一个例外的情况是当代码在匿名代码段(Anonymous Blocks)执行的时候,“with sharing”关键字不起作用。匿名代码段可以通过以下方式执行:

注意,执行匿名代码段的用户必须获得“Apex作者(Author Apex)”的权限。

与此相反,“without sharing”关键字则声明了当前用户的共享权限对于该段代码没有作用。

嵌套类

共享关键字只会影响到当前的类,不会影响到嵌套类。它们可以独立的声明共享规则。比如:

public with sharing OuterClass {
    ...

    public without sharing InnerClass {
        ...
    }
}

在上面的代码段中,外层类OuterClass和嵌套类InnerClass的共享设定是不同的,它们相互独立。

Apex的逻辑语句

在Apex中也有着各种逻辑语句,比如“if...else”、“for”、“while”和“do...while”。

有一点要注意的是,截至本文的时间(Apex版本v41.0),在Apex中没有“switch”语句。

Developer Console简介

Salesforce中的Developer Console是默认的集成开发环境,用来进行Apex和数据库的编程和操作。

在Salesforce中主界面点击右上角的用户名菜单,在下拉列表中点击“Developer Console”。

进入Developer Console

建立新的Apex类

在Developer Console主界面,点击“File”,指向“New”,在子菜单中选择“Apex Class”。在弹出的对话框中输入类名,即可建立新的Apex类。

建立新Apex类

在中间的编辑区域即可对类进行编辑。

编辑Apex类

控制台

界面下方的区域是控制台,可以查看日志(Log)、运行测试(Tests)、进行数据查询(Query Editor)等。

控制台
上一篇下一篇

猜你喜欢

热点阅读