如何在apex中将类的方法调用到另一个类中

时间:2012-08-27 09:53:12

标签: salesforce apex-code force.com

我想将类的方法用于另一个类。

     eg: public class controller 1{
          public void method 1(){}
      }


     public class controller 2{
         public void method 2() { }     
       } 

我想在类controller2中使用method1。 请帮我找到解决方案

2 个答案:

答案 0 :(得分:7)

您可以使用两种方法:

1.使用静态方法

你不能在这里使用controller2实例方法

public class controller2 
{
    public static string method2(string parameter1, string parameter2) {
        // put your static code in here            
        return parameter1+parameter2;
    }
    ...
}

在单独的类文件中调用method2()

// this is your page controller
public class controller1
{
    ...
    public void method1() {
        string returnValue = controller2.method2('Hi ','there');
    }
}

2.创建另一个类的实例

public class controller2 
{
    private int count;
    public controller2(integer c) 
    {
        count = c;
    }

    public string method2(string parameter1, string parameter2) {
        // put your static code in here            
        return parameter1+parameter2+count;
    }
    ...
}

public class controller1
{
    ...
    public void method1() 
    {
        controller2 con2 = new controller2(0);
        string returnValue = con2.method2('Hi ','there');
    }
}

如果您的方法位于具有命名空间的包中

string returnValue = mynamespace.controller2.method2();

答案 1 :(得分:2)

您可以通过实例化您正在调用的类来完成此操作。

// source class
public class MyClass1 {

    public MyClass1() {} // constructor

    public void MyMethod1() {
        // method code
    }
}

// calling class
public class MyClass2 {

    public void MyMethod2() {
        // call MyMethod1 from MyClass1
        MyClass1 c = new MyClass1(); // instantiate MyClass1
        c.MyMethod1();
    }
}

请注意,如果源类是全局的(而不是公共的)并且其方法是Web服务,您也可以使用MyClass1.MyMethod1();直接引用它。