意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Apex类与访问修饰符的权限是什么

来源:恒创科技 编辑:恒创科技编辑部
2024-01-31 20:48:59

这期内容当中小编将会给大家带来有关Apex类与访问修饰符的权限是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Apex 类的定义与Java相同,通过class 关键字标识。

1) 每个Top类必须要有修饰符,否则不能通过编译。


Apex类与访问修饰符的权限是什么

(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不 存在

publicclassTest{
privateclassInnerClazz{

}

publicvoidmy(){
InnerClazziclass=newInnerClazz();
System.debug(iclass);
}
}

2 public 可在当前应用或者在当前命名空间使用

3 global 任意访问,webService必须是global的,如果一个方法或者内部类为global,则Top类必须为global

4 with sharing/without sharing 当前类权限模式

类定义形式

private|public|global
[virtual|abstract|withsharing|withoutsharing]
classClassName[implementsInterfaceNameList][extendsClassName]{
//Thebodyoftheclass
}

成员变量定义形式

[public|private|protected|global][final][static]data_typevariable_name[=value]

类型和变量名为必须,访问修饰可选,不写为private final与static 修饰变量为常量与Java相同

类型:基本类型与自定义类型

Apex 属性:get/set

publicIntegerprop{
get{returnprop;}
set{prop=value;}
}

//简写当只写get时,在本类中也无法给值
publicIntegerprop{get;set;}

成员方法形式

[public|private|protected|global][override][static]data_typemethod_name(inputparameters)
{
//Thebodyofthemethod
}

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 sharingextends with sharing)

一般都是with sharing,without sharing解决特殊情况下。如最近遇到在市场活动下,创建报名,报名上的费用通过trigger汇总更新到市场活动上,销售没有市场活动编辑权限,但汇总又需要编辑权限的情况。

上述就是小编为大家分享的Apex类与访问修饰符的权限是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恒创行业资讯频道。

上一篇: restapi的设计细节和实施是什么样的 下一篇: 手机怎么远程登录云服务器?