2014-10-10 34 views
1

我對Java的使用經驗非常有限,而且我在實現一堆從其他源獲得的類時遇到了問題。調用方法的格式

我想從以下Java包使用calculateMutualInformation():https://github.com/Craigacp/JavaMI

相關的Java文檔描述的方法如下:

public static double calculateMutualInformation(double[] firstVector, 
              double[] secondVector) 

如果你想看到的doc文件,它可以在這裏找到:http://www.cs.man.ac.uk/~pococka4/JavaMI/index.html 我想兩個數組傳遞到這個功能,使用DoubleTrouble.java下面的代碼:

package JavaMI; 
public class DoubleTrouble { 
    public static double calculateMutualInformation() 
    { 
    double[] firstVector = {0, 1, 2, 0, 1, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 1, 0}; 
    double[] secondVector = {1, 2, 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, 0, 1, 2, 0, 2}; 
    //return ?? 
    } 
} 

上面的數據只是一個佔位符,但是,我似乎不知道如何調用此方法。我得到一個丟失的返回錯誤,並且我嘗試輸入的任何類型的返回語句給出一個錯誤(主要是我缺少一個「.class」)。我也嘗試將變量作爲該方法的參數,但這往往會導致更多的錯誤。

方法或人(我)有什麼問題嗎?我也嘗試從包中調用其他方法,例如MutualInformation(),但無濟於事。另外,我應該提到我編譯了JavaMI包中的所有java文件;不知道這是否有必要。

回答

0

public static double calculateMutualInformation()

  • public:指方法是從任何地方
  • static可見:意味着沒有必要有一個實例調用該方法,即DoubleTrouble.calculateMutualInformation()允許
  • double:是指該方法返回a double

另一個例子:

// returns a double 
public double sum(double a, double b) { return a+b; } 

// doesn't return anything 
public void something(double a, double b) { System.out.println(a+b); } 

this tutorial參見方法定義

0

你試圖實現必須接受2個參數的方法:

double[] firstVectordouble[] secondVectory

什麼目前你正在做的是創造這兩個變量 - 這是錯誤的。而不是你的方法創建它們,你的方法接收它們作爲參數,然後使用它們來計算並返回一些double值看起來像這樣:

double mutualInformation = ... // compute for firstVector and secondVector 

return mutualInformation; 

你的方法定義應該看起來更像是這樣的:

public static double calculateMutualInformation(double[] firstVector, double[] secondVector) { 
    double mutualInfo = ... // compute from firstVector and secondVector 

    return mutualInfo; // returning type double as method head states 
} 
+0

非常感謝您的幫助 – 2014-10-14 15:01:39