Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从void java调用静态方法时出错_Java_Oop - Fatal编程技术网

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

从void java调用静态方法时出错,java,oop,Java,Oop,需要从主类调用方法的帮助 我需要调用一个方法,因此我创建了一个对象来处理它。 下面我引用我的主要方法 public static void main(String[] args) { // TODO code application logic here SLRatio sl= new SLRatio(); sl.clustering(apa); } 这是我需要调用的方法 public class SLRatio { public sta

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

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

 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;

}
}
公共类SLR比率{
公共静态字符串[][]群集(字符串[][]apa){
System.out.println(“集群1”);
int a=apa.length/3;
字符串[][]cluster1=新字符串[a][apa[0]。长度];

对于(int i=0;i您没有在
SLRatio


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

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

SLRatio .clustering(...);
应该足够了

而且您似乎忘记了实现
分配
方法


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

不要使用
static
,除非您确定它是合适的

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

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


说真的,你需要学习更多的Java基础知识。也许从一本书中可以看出,“错误消息”似乎是一个错误,后面有一个单独的警告。我也尝试过这种方法,但仍然是错误的。Allocation()方法没有问题,它工作正常。我尝试过这种方法,但错误消息说“找不到符号”有什么我可以做的吗?我建议,删除两个方法调用。首先只添加clusterting方法调用,然后查看它是否工作。分配失败,因为SLRatio类中没有方法名称分配。是的,我也以这种方式运行,并且工作正常。方法分配没有问题。我还必须停用方法分配调用我也已经把代码改成了“sl.clustering(apa);”但是仍然会遇到错误我删除了标记,因为它与问题无关。