为什么不能更改Salesforce托管包中的类关系?

xn.*_*xn. 4 salesforce force.com apex-code

我在Salesforce托管软件包中编写了一个Apex类,该软件包使用了apex-lang库软件包的托管版本:

global class MySorter implements al.Objectcomparator
Run Code Online (Sandbox Code Playgroud)

我正在考虑通过在我的包中分发apex-lang来消除对托管包的依赖.安装了非托管版本的apex-lang后,我尝试更改我的课程:

global class MySorter implements Objectcomparator
Run Code Online (Sandbox Code Playgroud)

在尝试保存时,我收到一个错误:

错误:编译错误:必须维护必需的类关系:MySorter在第1行第8列实现al.ObjectComparator [以前管理]

为什么会有这样的限制?有关绕过它的任何想法吗?

sup*_*ell 5

限制措施是为了阻止您使用包裹之外的代码更改合同.这个代码的调用者可能来自你的包之外(因为你把它标记为全局),依赖于它实现al.ObjectComparator接口,如果你做了你想做的改变,你就会在升级时破坏它们的代码.