2021/05/24

Salesforceの使える変数|ローカル変数・インスタンス変数・クラス変数・NULL変数

 
  

Salesforceの使える変数まとめ

SalesforceのApexの変数と言っても、掘り下げてみると色々なタイプの変数が用意されています。今回の記事ではそういった変数について紹介すると共にSalesforceで変数を作成する際に気を付けたいポイントとアドバイスも解説していきます。 変数はデータ型と密接に関わっているのですが、そのデータ型によっても変数の作り方が変わっていくので、Salesforceで変数を作る際には是非参考にしてみて下さい。

Salesforceのapexの変数とは

そもそも変数とはデータを入れておく箱のようなものです。数値を入れるならInt等の様に整数型や浮動小数型、文字を入れるならString等のように文字列型の変数を設定する必要があり、種類毎にデータ型として名付けて区別されます。 使い方は非常に簡単で、変数の宣言をしてから初期化を行い、変数に値を代入するだけです。 変数の宣言は以下のように行います。
String strName = 'My String';
基本的には新しく宣言する事が出来るので種類と言っても切りがありませんが、今回はよく使われるものについてご紹介していきます。ただし、Stringなどのように変数を定義する際にはデータ型が重要です。 StringはもちろんIntegerやBoolean等の型でどのように変数名を付ければ良いかを解説していきます。

変数で気を付けておきたいポイント

SalesforceのApexでクラスを定義する際には2点ほど気をつけておくべき事があります。よくApexはJavaと似ていると言われますが、Apexでは大文字小文字を区別出来ません。そういった違いにも注意を払いつつ、Salesforceで変数を作ってみて下さい。

変数の効力について

変数及び変数に代入した値はそれ以降ずっと有効です。裏返すと、同じ変数を使って値を再定義する事は出来ないので注意してください。クラス内で定義した変数はそのクラス内だけで有効になるので、一時的に使えれば良い値があればクラスを利用するというやり方もあります。

大文字と小文字は区別出来ない

“Pain”と”pain”と言ったように、大文字か小文字かで変数を区別する事は不可能です。従って以下のコードでは1行目で1751を代入したのに、3行目で5を代入し直したという扱いになってしまうので要注意です。
Integer Pain = 1751;
for (Integer i = 0; i<5; i++) {
   integer pain = 5;//この構文ではエラーが生じた際にはその旨を告知する
   System.debug('エラーです');
}

Salesforceでよく使われる変数

Salesforceの変数の中にはローカル変数はもちろん、インスタンス変数やクラス変数、Null変数もあります。今回はSalesforceで使われる代表的な変数について解説していきます。

ローカル変数

ローカル変数とは、一般的に広く用いられるがその環境でしか使えない関数の事です。Javaと同様の構文で定義出来るので、以下にコードを示します。
Integer i = 0;
String str;
List strList;
Set s;
Map<id, string="> m;</id,>
このコードのポイントとしては、Javaと同様に文末にカンマを付ける事と、i=0(i以外にもjやk等が使えます)と初期化する事があります。こうする事でバグの発生を防ぐ事が出来ます。

インスタンス変数

インスタンス変数もローカル変数と同様に値を格納する事が出来る変数で、見た目も変わりません。しかし、途中でメソッドが途切れてもメソッド内であれば一貫して使い続けられるのがローカル変数との大きな違いです。 インスタンス変数は@peachなどのように冒頭に@を付けるのがルールです。またオブジェクト毎に独立しているので、あるオブジェクトで代入した値とは別に違うオブジェクトでは違う値を代入して使い分ける事も出来ます。

クラス変数

SalesforceにはSystemクラス等がありますが、クラス変数はそのクラス内であれば使える変数の事を言います。クラスの中にインスタンスが属している為、インスタンス変数よりも幅広い領域で使えるのが特徴です。 クラス変数は「クラス名.+○○」と言ったように先頭にクラスの名前を付けるのがルールです。

Null変数

Null変数は値を何も入れない、あるいは入っていない状態の変数です。ですのでディスプレイ上では”null”(何も入っていない)と出力されます。あるいは、あえて値を代入していない変数を作る事で、データを初期化出来る狙いもあります。
Boolean x = null;
Decimal d;
と設定する事で何も値が代入されていない変数を定義する事が出来ます。 また、
Integer mudskipper = 0, sardin = 1;
Boolean b;
とコーディングした場合、変数gobbyは値が代入されていないので変数Booleanは”null”と出力されます。falseと混同しやすいのですが、比較対象がないのである条件と正しいか否かの判断軸すらない所が違います。

String型及びInteger型における変数名の付け方のアドバイス

String型およびInteger型内で変数を定義する際は大文字小文字を区別できない点しか気をつける事がないので、アドバイスを差し上げる程度になります。 ポイントとしてはgobby等のように小文字で出来るだけ短い文字列にし、forループを使う際にはtやk等なるべく1文字にしましょう。ただし、短くする事にこだわって後で見返したときに何を格納したか分からなくならいように工夫する事が大事になってきます。

Boolean型における変数名のつけ方のアドバイス

Booleanメソッドにおいて変数名を定義するには一定のルールがあるので簡単にご紹介します。 isbeautifulといったようにisと形容詞を合わせる、haseatenといったようにhasと過去分詞を合わせる等のルールがあります。getmudskipperでは動詞の原形と単数名詞とが組み合わせになっていますが、文法的に成立しない組み合わせは不可なのでご注意下さい。

まずはやりやすいものから作ってみる

様々な変数や変数を作る時の注意点を解説していきましたが、まず作りやすいのはString型あるいはInteger型のローカル変数でしょう。変数の種類を選べば特にルールを気にすることなく定義出来るので、とりあえずSalesforce上で変数を定義してみて下さい。]]>

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

この記事の監修者・著者

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

おすすめの動画

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

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

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