如何从主类调用静态方法?

时间:2018-12-12 21:26:18

标签: java

我得到了以下代码:

public static ArrayList<Integer> MakeSequence(int N){

    ArrayList<Integer> x = new ArrayList<Integer>();

    if (N<1) {
        return x; // need a null display value?
    }
    else {
        for (int j=N;j>=1;j--)  {
            for (int i=1;i<=j;i++) {
                x.add(Integer.valueOf(j));
            }
        }
    return x;
    }
}       

我正试图从main方法中调用它,就像这样:

System.out.println(MakeSequence (int N)); 

但是我得到一个错误...

有什么建议吗?非常感谢,谢谢!

3 个答案:

答案 0 :(得分:4)

System.out.println(MakeSequence (int N)); 

应该是

int N = 5; // or whatever value you wish
System.out.println(MakeSequence (N));

只需传递正确类型的变量即可。您不必再说它是int

答案 1 :(得分:4)

您按照MakeSequence (int N)定义方法,这意味着该方法需要一个int类型的参数,并且在该方法内部使用时将被称为N

因此,在调用该方法时,您需要传递int像这样:

MakeSequence(5);
// or
int value = 5;
MakeSequence(value);

然后将所有内容放入print或将结果用于变量

System.out.println(MakeSequence(5));
//or
List<Integer> res = MakeSequence(5);
System.out.println(res);

要调用该方法,所有这些代码都应该在另一个方法中,例如main


  • x.add(Integer.valueOf(j));更改为x.add(j);,因为j已经是int

  • 要遵循Java命名约定:包,属性,变量,参数,方法必须从 lowerCase 开始,而类,接口应从 UpperCase < / p>

答案 2 :(得分:2)

第一个问题是我认为N应该是某个int值,而不是在方法调用中定义变量。像

int N = 20;
ClassName.MakeSequence(N);

您将面临的另一个问题。由于System.out.println()仅显示字符串值,并且您正在将ArrayList对象传递给它,因此像这样System.out.println(ClassName.MakeSequence(N).toString())

使用它