この記事の目次
Salesforceの使える変数まとめ

Salesforceのapexの変数とは

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でよく使われる変数

ローカル変数
ローカル変数とは、一般的に広く用いられるがその環境でしか使えない関数の事です。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と混同しやすいのですが、比較対象がないのである条件と正しいか否かの判断軸すらない所が違います。