[Salesforce][ApexTrigger]エラーメッセージが不親切ではまる(5分) | Salesforceで開発したり

Salesforceで開発したり

Salesforce.comに触れ始めてからもう7年
当時から比べたら相当な進化を遂げている。
出来る事が増えた分、やり方を調べなきゃいけないので、日常と共にメモで残そうというお話。

ApexTriggerによる実装をしていたら、

Save error: map must have exactly 2 type arguments


なるエラーが出ていた。


訳せば単純に「Mapには2種類の引数が必要だよ!」っていう意味ですよね。
で、Mapに2つの引数てなんだろかと思ってソースを見ていても
Mapのオブジェクトから呼び出しているメソッドはget(Id id)のみ
引数一つでええじゃないですか。

newしてるわけじゃないからコンストラクタ呼び出してるわけでもないし。
と思った所で、元々Listを使おうとしていた所をMapに変えたことを思い出した。




Map<CustomObject__c> oldMap = Trigger.oldMap; ←元々Listで実装してた

List<CustomObject__c> newList = Trigger.new;


そりゃエラーになるよな、と。


Map<Id,CustomObject__c> oldMap = Trigger.oldMap;
List<CustomObject__c> newList = Trigger.new;

と、修正して無事直りました。5分はまった。
せめて何行目でエラーになってるか教えてくれれば一瞬で解決できるのに!

ところで、exactlyって聞くと、普通の三十路男子ならあれ思い出すよね。
弟のやつ。

exactly