2022/06/27

SalesforceにおけるcompareToとは?設定方法や注意点をご紹介

 
  

SalesforceのcompareToとは?

SalesforceのcompareToとは、ユーザーの定義でリストの並び替えを追加する機能です。並び替えには、Apexのプログラム言語を用いたクラスにComparableインターフェースを使用します。 compareToは、Comparableインターフェースの中で使用します。Salesforceの並び替えは、従業員の成績を並び替えをする、生産性の多い商品を並び替えるなど、比べて順番に並べる作業をすることがあります。

SalesforceのcompareToの概要

まずは、SalesforceでcompareToを使用するにあたって、いくつかの手順を簡単に説明します。最初はユーザー定義型のデータの並び替えをするプログラムをApexで作成します。 並び替えをする際は、ApexクラスにComparableインターフェースを実装し、compareToメソッドと一緒にクラスを作るのです。並び替えの仕方や条件は、ComparableインターフェースとcompareToメソッドの実装によって変わるので、どう作りたいか考えて作成しましょう。 具体的な手順は、サンプルを用いて説明します。

SalesforceでcompareToを設定する具体的な説明と方法

SalesforceのComparableはデータの並び替えをサポートするものです。ApexクラスにComparableインターフェースとcompareToメソッドを一緒に実装します。 Comparebleインターフェースを実装するには、implementsキーワードを最初に宣言します。
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を活用しよう

今回はSalesforceのcompareToについて紹介しました。 ユーザー定義型のデータの並び替えをする機能なので、従業員の成績、生産性のある商品の並び替えなど使用する場面は多いので、活用できるようにしましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】