Apex编码错误:方法不存在或签名不正确

时间:2013-05-24 18:18:33

标签: methods triggers salesforce call

我对顶点比较陌生,所以也许有人可以在这里告诉我这段代码我做错了什么。我正在尝试在创建新对象时触发触发器。我创建了一个单独的类,它将调用。

trigger LearningTriggers on le_Object__c (after insert, after update) {
    if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate)){
        TestingTrigger t = new TestingTrigger();
        t.changeObject(Trigger.new, Trigger.old);
    }
}

这是我用触发器代码调用的类中的方法。

public with sharing class TestingTrigger {
    public void changeObject(le_Object__c[] newObj, le_Object__c[] oldObj){
        //some code here
    }
}

由于某种原因,这行在触发器代码“t.changeObject(Trigger.new,Trigger.old);”抛出此错误“保存错误:方法不存在或签名不正确:[TestingTrigger] .changeObject(LIST)。

看起来调用方法可能有问题,但我不确定。我知道方法的名称和调用中的参数数量是正确的。谁能告诉我这里发生了什么?有什么东西我不见了吗?

1 个答案:

答案 0 :(得分:0)

使changeObject方法成为静态方法

 public static void changeOject(list<le_object__c> newList, list<le_object__c> oldList){
  }

并且你不需要在触发器中实例化类,因为该方法现在是静态的,你可以直接调用这样的方法:

TestingTrigger.changeObject(trigger.new, trigger.old);