'Making a constructor that accepts an integer array
How can I pass in an integer array into my constructor?
Here is my code:
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);
}
}
The error given is:
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
Solution 1:[1]
For the current invocation, you need a
var-args constructorinstead. So, you can either change yourconstructordeclaration to take avar-argargument: -public Temperature(int... a) { /**** Rest of the code remains the same ****/ }or, if you want to use
an arrayas argument, then you need topass an arrayto your constructor like this -Temperature i = new Temperature(new int[] {1,2,3,4,5,6,7});
Solution 2:[2]
This should do it: new Temperature(new int[] {1,2,3,4,5,6,7})
Solution 3:[3]
You can do it by the following way
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);
}
}
Solution 4:[4]
public static void main(String[] args)
{
Temperature i = new Temperature(new int[] {1,2,3,4,5,6,7});
}
Solution 5:[5]
Temperature i = new Temperature(1,2,3,4,5,6,7);
When you try to initialize this constructor consider it has int values you get error msg like
required: int[] found: int,int,int,int,int,int,int reason: actual and formal argument lists differ in length Before intialize the value declare it in a separate variable
import java.io.*;
import java.util.*;
public class HashPrint implements Serializable
{
private int[] temps = new int [7];
public HashPrint(int[] a)
{
this.temps=a;
}
public static void main(String[] args)
{
int arr[]={1,2,3,4,5,6,7};
HashPrint i = new HashPrint(arr);
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Dan Iliescu |
| Solution 3 | Bhavik Ambani |
| Solution 4 | kosa |
| Solution 5 | Baba Fakruddin |
