-1

在从主类调用方法时需要帮助。

我需要调用一个方法,因此我创建了一个对象来处理它。
下面我引用我的主要方法

 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;

}
}

我收到错误消息:“找不到符号,访问静态方法集群”

我能做些什么来解决它?我试图改变语法,但没有奏效。
太感谢了。

4

3 回答 3

2

你没有定义Allocation()方法SLRatio

注意:静态方法应该用类名调用(避免实例方法和静态之间的混淆)

于 2012-09-13T16:04:26.357 回答
1

如果是静态方法,则不需要通过实例调用。

SLRatio .clustering(...);

应该足够了。

而且您似乎忘记了实现Allocation方法。

另一个建议,java命名约定,方法名以小写字母开头。

于 2012-09-13T16:04:29.320 回答
0

static除非您确定合适,否则请勿使用。

这是一个流行的编程错误,部分原因是 eclipse 不断建议在变量和方法static无法访问时创建它们。但通常,这不是正确的解决方案。虽然它修复了编译问题,但它经常破坏应用程序逻辑。

现在,您的问题可能是它apa有 type String[][],但您正在String[]向它传递一个参数。所以无法编译,因为没有方法clustering(String[] args)

说真的,您需要学习更多 Java 基础知识。也许来自一本书

于 2012-09-14T06:41:48.613 回答