【问题标题】:Apex coding error: Method does not exist or incorrect signatureApex 编码错误:方法不存在或签名不正确
【发布时间】:2013-05-24 18:18:33
【问题描述】:

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

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

【问题讨论】:

  • 它表明没有保存带有 TestingTrigger 的文件。刷新它,看看你在服务器上得到了什么。

标签: methods triggers salesforce call


【解决方案1】:

将 changeObject 方法设为静态方法

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2016-03-20
    • 2011-08-29
    • 1970-01-01
    • 2023-03-08
    • 2021-10-08
    相关资源
    最近更新 更多