この記事の目次
Salesforceの機能拡張時に使われるinstanceofとは?
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/8c7f204d9ede4027afb1e4450514b993d07cd4a1/cc5cf742-511e-4170-b2ac-99d2cb2c1d9e.jpg)
Salesforceにおけるinstanceofの概要
Boolean result = obj instanceof Account;
上のコードのように、Salesforceにおけるinstanceofは「+」や「-」などの演算子と同じかたちで使われます。下記で使用例や注意点などについて紹介します。
instanceofキーワードの使用例
// 拡張元のクラス
public class Parent{
}
// 拡張するクラス
public class Child extends Parent{
}
Parent p = new Child();
If (p instanceof Child) {
Child c = (Child) p;
} else {
// Childがpの型に代替できない場合はキャストしない
}
上記のコードでは、拡張元の型の変数pに拡張したクラスのオブジェクトを代入します。そして、型Childをpの型に代替できるかをinstanceofで調べます。このコードでは代替可能なので、pのオブジェクトはChildにキャストされcに代入されます。
instanceofでキャスト可能かを調べるため、より安全なコードになります。
instanceofキーワードの注意点
SalesforceにおいてAPIバージョン32.0以降で保存されたApexでは、instanceofの左のオペランドがnullの場合、instanceofはfalseを返します。下のコードでは、falseを返します。
Object obj = null;
Boolean result = n instanceof Account;
if (result) {
System.debug('true');
} else {
System.debug('false');
}
APIバージョン31.0以前では、この場合instanceofはtrueを返します。
instanceofの優先順位
Apexでは、演算子は規則に従った順序で解釈されます。優先順位は次のとおりです。1が一番優先順位が高く、9が低くなっています。 1.{} () ++ == 2.! -x +x (type) new 3.* / 4.+ – 5.< <= > >= instanceof 6. == != 7.&& 8.|| 9.= += -= *= /= &= もし優先順位がわからなくなった場合は、優先してほしい演算子に「()」のグループ化などを使うことで優先できます。instanceofを使いこなそう!
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/654bd373-e8cd-4bfa-b2e9-6a2405b5a5ff.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人が回答】