温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-01-18 11:29:36 来源:亿速云 阅读:133 作者:柒染 栏目:云计算

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

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页面,让无权限的人是否能创建

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

实际测试后,是可以创建,所有人与创建人均为当前登录者,但是无法通过标准界面查看当前记录(赋值是程序给值)

测试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类与访问修饰符的权限是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI