※当記事は2025年9月に作成した記事です。
はじめに
社員Wです。
Apexを使用した開発を始めてかれこれ数年たちますが、未だに初歩的な部分で躓いたりする事があります。
今回は備忘も兼ねて、Apexにおける大文字と小文字の扱いについて公式ドキュメントの内容を詳しく解説します。(ドキュメントの内容はこちらを参照)
本題
1. 変数名とメソッド名の呼び出し
Apexでは、変数名やメソッド名の大文字と小文字は区別されません。
変数名について、以下例を見てみましょう
例
integer MyNumber = 10;
integer mynumber = 20;
System.debug(MyNumber);
System.debug(mynumber);
上記のコードを開発者コンソールの実行匿名ウィンドウで実行するとわかるのですが、
「MyNumber」と「mynumber」は、Apexでは大文字と小文字を区別しないため、同じ変数として扱われます。
なので、2行目(Integer MyNumber = 10;)
の直後に3行目(Integer mynumber = 20;)
を宣言すると、二重宣言となりDuplicate field: mynumber
というエラーが発生します。
上記特色を踏まえると、Apexを書く際は下記2点を意識すると良いかと思います。
・命名規則を設定して、コードを読みやすくする
・別の値を格納したい場合は、必ず別の文字列で宣言する
例
Integer myNumber = 10;
Integer myOtherNumber = 20;
System.debug(myNumber); //10として出力される。
System.debug(myOtherNumber); //20として出力される。
このように、命名規則(キャメルケースなど)に従い、変数名を分ける意識を持つことが重要です。
コードの可読性が大幅に向上し、予期せぬエラーの発生を防ぐことができます。
2. オブジェクト名と項目名の呼び出し
オブジェクト名及び項目名を呼び出す際も、大文字と小文字は区別されません。
以下の例を見てみましょう。
例1:オブジェクト名の参照
Account a1;
ACCOUNT a1;
例2:項目名の参照
Account.active__c = 'A';
Account.ACTIVE__C = 'A';
例1ではオブジェクト名の「Account」が、例2では項目名の「active__c」が、それぞれ異なる大文字小文字で表記されていますが、どちらを書いても同じ内容となります。
このように、Apexはオブジェクト名や項目名の大文字小文字を区別しませんが、分かりやすいコードを書くためにも、作成時に定義された大文字小文字の表記に合わせることを強く推奨します。
3. SOQLのSELECT文
SOQLについて同様に、キーワードも大文字と小文字を区別しません。
例えば、以下SOQLは内容としては全く同じです。
・SELECT Id FROM Account
・select id from account
なので、極論を言えば上記のどちらで書いても全く問題はないです。
ないのですが、何度も言う通りコーディングで最も大切なのは可読性です。いくら書き方が自由だからと言って他メンバーが分かりずらいコードを書くのはNGです。
チームで決めた記述ルールには必ず沿うようにコードを書きましょう。
1~3のまとめ:可読性を意識してコーディングをしよう
大文字と小文字を区別しないからと言って、自由にコードを書いてしまうと後から見たときに読みにくいコードになってしまいます。
開発をスムーズに進めるためにも、以下のことを意識すると良いと思います。
- 命名規則を決める
- 命名規則に沿ってクラス、変数、メソッドの宣言を行う
- SOQLの記述ルールを統一する
これらの小さな心がけが、自分やチームメンバーの今後の開発効率を大きく改善してくれます。
是非とも意識して取り組みましょう。
さいごに
改めて書き出してみると、いかにSalesforceが大文字小文字の区別を無くしているかが良く分かりますね。
今回書いた内容は初歩の初歩ですが、今後コーディングする上で大事な部分なので今一度振り返れてよかったです。