0

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

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)。

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

4

1 回答 1

0

使 changeObject 方法成为静态方法

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

而且您不需要在触发器中实例化该类,因为该方法现在是静态的,您可以直接调用该方法,如下所示:

TestingTrigger.changeObject(trigger.new, trigger.old);
于 2013-05-26T04:33:27.790 回答