この記事の目次
SalesforceのcompareToとは?
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/558130be-c106-47de-a1f2-06db421e15bb.jpg)
SalesforceのcompareToの概要
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/b6583a06-83cc-4fa2-8649-54512fa48c13.jpg)
SalesforceでcompareToを設定する具体的な説明と方法
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/8c7f204d9ede4027afb1e4450514b993d07cd4a1/aaba119f-2458-4087-82ee-c4abc9a7a53c.jpg)
global class Employee implements Comparable {
次にcompareTo メソッドを実装するのです。
global Integer compareTo(Object compareTo) {
// Your code here
}
メソッドは、globalやpublicで宣言しましょう。publicで表すと以下のようになります。これは、比較であるInteger値を結果として返すコードです。
public Integer compareTo(Object objectToCompareTo)
サンプルを用いた実装例
以下は従業員IDを比較して値を返すプログラムサンプルです。compareToメソッドでクラスインスタンスの従業員の引数で渡された従業員と比較します。 インスタンスと objectToCompareTo が等しいならば、0、インスタンスが objectToCompareTo より大きければ1以上、インスタンスがobjectToCompareTo より小さいときは 0 未満です。 integerで値を返します。Employeeはデータの並び替え順をテストします。global class Employee implements Comparable {
public Long id;
public String name;
public String phone;
// Constructor
public Employee(Long i, String n, String p) {
id = i;
name = n;
phone = p;
}
// Implement the compareTo() method
global Integer compareTo(Object compareTo) {
Employee compareToEmp = (Employee)compareTo;
if (id == compareToEmp.id) return 0;
if (id > compareToEmp.id) return 1;
return -1;
}
}
@isTest
private class EmployeeSortingTest {
static testmethod void test1() {
List empList = new List();
empList.add(new Employee(101,'Joe Smith', '4155551212'));
リファレンス Comparable インターフェース
empList.add(new Employee(101,'J. Smith', '4155551212'));
empList.add(new Employee(25,'Caragh Smith', '4155551000'));
empList.add(new Employee(105,'Mario Ruiz', '4155551099'));
// Sort using the custom compareTo() method
empList.sort();
// Write list contents to the debug log
System.debug(empList);
// Verify list sort order.
System.assertEquals('Caragh Smith', empList[0].Name);
System.assertEquals('Joe Smith', empList[1].Name);
System.assertEquals('J. Smith', empList[2].Name);
System.assertEquals('Mario Ruiz', empList[3].Name);
}
}
SalesforceでcompareToを活用しよう
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/112dc251-2bba-4f58-83a0-712b3bbf922e.jpg)
この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】