从void java调用静态方法时出错

时间:2012-09-13 16:02:39

标签: java oop

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

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

 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;

}
}

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

我能做些什么来解决它?我试图改变语法,但它没有用。
非常感谢你。

3 个答案:

答案 0 :(得分:2)

您未在Allocation()

中定义方法SLRatio

注意:应使用classname调用静态方法(以避免实例方法与静态之间的混淆)

答案 1 :(得分:1)

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

SLRatio .clustering(...);

应该足够了。

似乎你忘了实施Allocation方法。

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

答案 2 :(得分:0)

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

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

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

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