3

如何将整数数组传递给我的构造函数?

这是我的代码:

import java.io.*;
import java.util.*;

public class Temperature implements Serializable
{
    private int[] temps = new int [7];
    public Temperature(int[] a)
    {
        for(int i=0; i < 7; i++)
        {
            temps[i] = a[i];
        }

    }
    public static void main(String[] args)
    {
        Temperature i = new Temperature(1,2,3,4,5,6,7);
    }
}

给出的错误是:

Temperature.java:17: error: constructor Temperature in class Temperature cannot be applied to given types;
        Temperature i = new Temperature(1,2,3,4,5,6,7);
                        ^
  required: int[]
  found: int,int,int,int,int,int,int
  reason: actual and formal argument lists differ in length
1 error
4

4 回答 4

7
  • 对于当前调用,您需要一个var-args constructor 代替。所以,你可以改变你的constructor声明来接受一个 var-arg论点: -

    public Temperature(int... a) {
         /**** Rest of the code remains the same ****/
    }
    
  • 或者,如果你想an array用作参数,那么你需要pass an array像这样的构造函数 -

    Temperature i = new Temperature(new int[] {1,2,3,4,5,6,7}); 
    
于 2012-11-15T18:42:24.383 回答
1

应该这样做: new Temperature(new int[] {1,2,3,4,5,6,7})

于 2012-11-15T18:44:29.537 回答
1

您可以通过以下方式进行

import java.io.*;
import java.util.*;

public class Temperature implements Serializable
{
    private int[] temps = new int [7];
    public Temperature(int[] a)
    {
        for(int i=0; i < 7; i++)
        {
            temps[i] = a[i];
        }

    }
    public static void main(String[] args)
    {
        int [] vals = new int[]{1,2,3,4,5,6,7};  
        Temperature i = new Temperature(vals);
    }




}
于 2012-11-15T18:44:44.267 回答
0
 public static void main(String[] args)
    {
    Temperature i = new Temperature(new int[] {1,2,3,4,5,6,7});
    }
于 2012-11-15T18:42:50.260 回答