Java 类RowBreaker中的方法getSums无法应用于给定类型
我正在尝试创建跑步者,但出现以下错误:Java 类RowBreaker中的方法getSums无法应用于给定类型,java,Java,我正在尝试创建跑步者,但出现以下错误: method getSums in class RowBreaker cannot be applied to given types; int[] sums1 = rb1.getSums(); error: method getSums in class RowBreaker cannot be applied to given types; int[] sums2 = rb2.getSums(); 以下是主要类别代码: public class Ro
method getSums in class RowBreaker cannot be applied to given types;
int[] sums1 = rb1.getSums();
error: method getSums in class RowBreaker cannot be applied to given types;
int[] sums2 = rb2.getSums();
以下是主要类别代码:
public class RowBreaker {
private int[] arr;
public RowBreaker(int[] GO) {
arr = GO;
}
public int[] getSums(int[] arr){
int theSum=0;
int[] sum = new int[arr.length];
for(int i = 0;i<arr.length;i++){
int n = arr[i];
while(n!=0){
if(n%10!=0){
sum[i]=theSum;
}
}
n=n/10;
}
return sum;
}
}
我尝试过谷歌,但我没有任何可以问的朋友。感谢您的帮助!我仍然不熟悉编码概念。您使用参数int[]arr声明了getSums,但您尝试不使用参数调用它:int[]sums1=rb1.getSums
如果要使用私有类成员arr,只需从函数声明中删除参数:
public int[] getSums() {...
另一方面,如果希望将数组传递给getSums方法,则需要明确地这样做:
int[] sums1 = rb1.getSums(one);
问题在于int[]sums1=rb1.getSums;和int[]sums2=rb2.getSums;您有一个int[]作为参数,因此必须传入一些内容。我建议您从方法getSums中删除该参数,只使用已有的私有int[]arr实例
编辑
下面是您的类应该是什么样子的想法:
import java.util.Arrays;
public class RowBreakerRunner {
public static void main(String[] args) {
int[] one = { 36, 271, 343, 2001, 1048 };
RowBreaker rb1 = new RowBreaker(one);
int[] sums1 = rb1.getSums();
int[] two = { 361, 2348, 174, 129, 7002 };
RowBreaker rb2 = new RowBreaker(two);
int[] sums2 = rb2.getSums();
Arrays.stream(sums1).forEach(n -> System.out.println(n));
Arrays.stream(sums2).forEach(n -> System.out.println(n));
}
}
public class RowBreaker {
private int[] arr;
public RowBreaker(int[] GO) {
arr = GO;
}
public int[] getSums() {
int theSum = 0;
int[] sum = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int n = arr[i];
while (n != 0) {
if (n % 10 != 0) {
sum[i] = theSum;
}
}
n = n / 10;
}
return sum;
}
}
注意:代码似乎卡在无限循环中。getSums采用int[]参数。但是,当您调用method.put参数到您的方法`rb1.getSumsone`确保再次公开RowBreaker类。
import java.util.Arrays;
public class RowBreakerRunner {
public static void main(String[] args) {
int[] one = { 36, 271, 343, 2001, 1048 };
RowBreaker rb1 = new RowBreaker(one);
int[] sums1 = rb1.getSums();
int[] two = { 361, 2348, 174, 129, 7002 };
RowBreaker rb2 = new RowBreaker(two);
int[] sums2 = rb2.getSums();
Arrays.stream(sums1).forEach(n -> System.out.println(n));
Arrays.stream(sums2).forEach(n -> System.out.println(n));
}
}
public class RowBreaker {
private int[] arr;
public RowBreaker(int[] GO) {
arr = GO;
}
public int[] getSums() {
int theSum = 0;
int[] sum = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int n = arr[i];
while (n != 0) {
if (n % 10 != 0) {
sum[i] = theSum;
}
}
n = n / 10;
}
return sum;
}
}