【Salesforce 認定Platformデベロッパー】試験対策:第94問

問題

Apexコンパイラエラーが発生するステートメントはどれですか。

  • Map<Id, Lead> lmap = new Map<Id, Lead>([Select ID from Lead Limit 8]);
  • Date d1 = Date.Today(), d2 = Date.ValueOf(‘2018-01-01’);
  • Integer a=5, b=6, c, d = 7;
  • List<String> s = List<String>{‘a’,’b’,’c’};

正解

  • Map<Id, Lead> lmap = new Map<Id, Lead>([Select ID from Lead Limit 8]);
  • Date d1 = Date.Today(), d2 = Date.ValueOf(‘2018-01-01’);
  • Integer a=5, b=6, c, d = 7;
  • List<String> s = List<String>{‘a’,’b’,’c’};

解説

それぞれの選択肢の理由について説明します。

□ Map<Id, Lead> lmap = new Map<Id, Lead>([Select ID from Lead Limit 8]);
これは不正解です。 このステートメントは、SOQLクエリを利用してリードオブジェクトのリストを取得し、それをMapのコンストラクタに渡しています。この構文は正しく、IdをキーとしたリードオブジェクトのMapを生成するため、コンパイルエラーは発生しません。

□ Date d1 = Date.Today(), d2 = Date.ValueOf(‘2018-01-01’);
これは不正解です。 このステートメントは正しく、Dateクラスのメソッドを使用して日付を取得および変換しています。この行は、現在の日付を取得するためのTodayメソッドと、文字列から日付を生成するためのValueOfメソッドを使用しています。Apexにおいてこのように複数の変数を同じ行で宣言し、異なる値を割り当てることは有効であり、コンパイルエラーは発生しません。

□ Integer a=5, b=6, c, d = 7;
これは不正解です。 こちらは複数の変数を一行で宣言していますが、Apexではこのような宣言は有効で、コンパイルエラーを引き起こしません。変数cには値が割り当てられていないため、デフォルトでnullを持ちますが、これはエラーではありません。

□ List<String> s = List<String>{‘a’,’b’,’c’};
これは正解です。 これはコンパイルエラーが発生します。理由は、リストの宣言において new キーワードが欠けているためです。Apexでは、新しいオブジェクトやコレクションを作成する際には new キーワードが必須です。正しい書き方は以下の通りです。

List<String> s = new List<String>{'a', 'b', 'c'};

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約が適用されます。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次