重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关Apex类与访问修饰符的权限是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联公司专注于企业全网营销推广、网站重做改版、平南网站定制设计、自适应品牌网站建设、H5网站设计、成都做商城网站、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为平南等各大城市提供网站开发制作服务。
Apex 类的定义与Java相同,通过class 关键字标识。
1) 每个Top类必须要有修饰符,否则不能通过编译。
(Compile Error for Test.cls: Top-level type must have public or global visibility at line 1 column 7)
2)内部类可以不写修饰符(私有)。
3) 可选virtual, abstract 表明当前类为抽象类
4)和Java一样,可通过implements关键字实现多个接口,通过extends单继承父类
5)类名不能和SF的关键字重名如标准对象等(之前一同事遇到一个类的类名和标准对象同名,导致在使用标准对象时,报字段不存在)
1 private 不可用在Top 类中,仅可在内部类中使用,外部不可访问
当new Test 调用my()时,可正确执行,当通过 new Test.InnerClazz时报InnerClazz不 存在
public class Test{ private class InnerClazz{ } public void my(){ InnerClazz iclass = new InnerClazz(); System.debug(iclass); } }
2 public 可在当前应用或者在当前命名空间使用
3 global 任意访问,webService必须是global的,如果一个方法或者内部类为global,则Top类必须为global
4 with sharing/without sharing 当前类权限模式
private | public | global [virtual | abstract | with sharing | without sharing] class ClassName [implements InterfaceNameList] [extends ClassName] { // The body of the class }
[public | private | protected | global] [final] [static] data_type variable_name [= value]
类型和变量名为必须,访问修饰可选,不写为private final与static 修饰变量为常量与Java相同
类型:基本类型与自定义类型
Apex 属性:get/set
public Integer prop{ get {return prop;} set {prop = value;} } //简写 当只写get时,在本类中也无法给值 public Integer prop{get; set;}
[public | private | protected | global] [override] [static] data_type method_name (input parameters) { // The body of the method }
1)访问修饰符可选 不写为private
2) override 实现父类的抽象方法
3) static 静态方法,类方法,通过类调用
4) 值类型(基本数据类型如:Integer,String)与引用类型
1)with sharing 当前类遵循SF的共享模型 按SQL语句执行的结果集只查出有权限的数据。
2)without sharing 按SQL语句执行
测试1:当控制类为without sharing 对像所有权限为无,通过VF页面,让无权限的人是否能创建
实际测试后,是可以创建,所有人与创建人均为当前登录者,但是无法通过标准界面查看当前记录(赋值是程序给值)
测试2:当查询后台数据在VF页面展示时,查询日志时,显示获取了数据,前台通过循环时,打印空白。无法查看
当把对象勾选查看时,可以打印出结果,但是字段安全性不可见的字段还是不可见。
测试3:删除一条记录,结果显示可以删除。
测试4:修改一条记录,结果显示可以删除。(赋值是程序给值)
采用without sharing时,可以创建对象,能查询到结果,但是无法在VF页面中显示,当有对象查看权限时,是可以看到标准字段,当字段可见性没有勾选时,仍然是不可见的。
修改和删除能正常工作。(还需要测试的情况有:内部类的权限,当with sharing调用without sharing类的方法时权限,当with sharing extends without sharing 权限,当without sharing extends with sharing)
一般都是with sharing,without sharing解决特殊情况下。如最近遇到在市场活动下,创建报名,报名上的费用通过trigger汇总更新到市场活动上,销售没有市场活动编辑权限,但汇总又需要编辑权限的情况。
上述就是小编为大家分享的Apex类与访问修饰符的权限是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。