[英]error on calling static method from void java
在從主類調用方法時需要幫助。
我需要調用一個方法,因此我創建了一個對象來處理它。
下面我引用我的主要方法
public static void main(String[] args) {
// TODO code application logic here
SLRatio sl= new SLRatio();
sl.clustering(apa);
}
這是我需要調用的方法
public class SLRatio {
public static String [][]clustering(String[][]apa) {
System.out.println("Cluster 1");
int a = apa.length/3;
String [][] cluster1=new String [a][apa[0].length];
for (int i =0; i<a; i++) {
for (int j=0;j<apa[0].length;j++) {
cluster1 [i][j] = apa[i][j];
}
}
for (int b = 0; b < cluster1.length; b++) {
for (int c = 0; c < cluster1[0].length; c++) {
System.out.print(cluster1[b][c] + "\t");
}
System.out.println("");
}
System.out.println("\n");
return cluster1;
}
}
我收到錯誤消息:“找不到符號,正在訪問靜態方法集群”
我該怎么解決? 我試圖更改語法,但是沒有用。
非常感謝。
您沒有在SLRatio
定義方法Allocation()
注意:應使用類名調用靜態方法(以避免實例方法與靜態方法之間的沖突)
如果它是靜態方法,則無需通過實例調用它。
SLRatio .clustering(...);
應該足夠了。
看來您忘記了實施Allocation
方法。
另一個建議是Java命名約定,方法名稱以小寫字母開頭。
除非確定合適,否則不要使用static
。
這是一個流行的編程錯誤,部分原因是eclipse一直建議在無法訪問變量和方法時使它們變為static
。 但是通常,這不是正確的解決方案。 它解決了編譯問題,但通常會破壞應用程序邏輯。
現在,您的問題可能是apa
具有String[][]
類型,但是您正在向其傳遞String[]
參數。 由於沒有方法clustering(String[] args)
,因此無法編譯。
認真地說,您需要學習更多Java基礎知識。 也許是一本書 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.