4

apex-langライブラリ パッケージの管理バージョンを使用する Salesforce 管理パッケージに Apex クラスを作成しました。

global class MySorter implements al.Objectcomparator

apex-lang をパッケージと共に配布することで、管理パッケージへの依存を排除​​することを検討しています。アンマネージド バージョンの apex-lang をインストールしたら、クラスを変更してみます。

global class MySorter implements Objectcomparator

保存しようとすると、次のエラーが表示されます。

エラー: コンパイル エラー: 必要なクラスの関係を維持する必要があります: MySorter Implements al.ObjectComparator[Previously Managed] at line 1 column 8

なぜそのような制限が設けられるのでしょうか? それを回避するためのアイデアはありますか?

4

1 に答える 1

5

この制限は、パッケージ外のコードで契約を変更することを防ぐために設けられています。パッケージの外部からこのコードの呼び出し元が存在する可能性があります (グローバルにマークしたため)、al.ObjectComparator インターフェイスの実装に依存している場合、必要な変更を行うと、アップグレード時にそのコードが壊れます。 .

于 2012-04-06T18:45:24.933 に答える