2012-11-15 60 views
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 

回答

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}); 
    
0
public static void main(String[] args) 
    { 
    Temperature i = new Temperature(new int[] {1,2,3,4,5,6,7}); 
    } 
1

这应做到: 新的温度(新我NT [] {} 1,2,3,4,5,6,7)

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); 
    } 




} 
相关问题