从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);”但是仍然会遇到错误我删除了标记,因为它与问题无关。