我正在使用Java编写项目,并使用以下代码创建了一个类:
public class VehInfo {
private int[][] traffic = new int[20][150];
private int mintime = 0;
private int numvehicles = 1;
private int[] vehiclecode = new int[5];
public VehInfo(int[][] traffic, int mintime, int numvehicles, int[] vehiclecode) {
this.traffic = traffic;
this.mintime = mintime;
this.numvehicles = numvehicles;
this.vehiclecode = vehiclecode;
}
}
我想使用以下代码
创建此类的新实例VehInfo vehinfo = new VehInfo(new int[20][150], new int, new int, new int[5]);
然而,Netbeans告诉我:
必需:(int [] [],int,int,int [])
发现:(int [] [],int [],int [],int [])
我错过了什么?我显然没有将这些变量初始化为int [],那么它们为什么会被这样变换呢?
答案 0 :(得分:5)
您无法启动简单数据类型,例如int
,boolean
,char
,float
,double
等。
将其更改为:
VehInfo vehinfo = new VehInfo(new int[20][150], 0, 0, new int[5]);
或删除传递的属性。在我看来,你设置了默认值:
private int mintime = 0;
private int numvehicles = 1;
答案 1 :(得分:1)
试
VehInfo vehinfo = new VehInfo(new int[20][150], 0,0 new int[5]);
编辑:太晚了:(
答案 2 :(得分:1)
您正在努力解决语法错误
试试这个VehInfo vehinfo = new VehInfo(new int[20][150], 1, 2, new int[5]);
答案 3 :(得分:1)
这样做:
VehInfo vehinfo1 = new VehInfo(new int[20][150], new Integer(1), new Integer(1), new int[5]);
或者这个:
VehInfo vehinfo2 = new VehInfo(new int[20][150], 1, 1, new int[5]);
因为int(或Integer)是原语,所以如果没有值,它们就无法实例化。
答案 4 :(得分:0)
你的构造函数
public VehInfo(int[][] traffic, int mintime, int numvehicles, int[] vehiclecode)
需要这样的情况。假设您已声明变量:
int[][] traffic = new int[20][150];
int mintime = 0;
int numvehicles = 0;
int[] vehiclecode = new int[5];
然后您可以为它们分配值:
/** here in your program you assign some values */
mintime = 30;
numvehicles = 2;
vehiclecode[0] = 44;
vehiclecode[1] = 77;
稍后创建VehInfo类的对象
/** then in you program you can create vehinfo objects */
VehInfo vehinfo = new VehInfo(traffic, mintime, numvehicles, vehiclecode);
答案 5 :(得分:0)
尝试使用数字而不是像这样的“new int”初始化您的类。
VehInfo vehinfo = new VehInfo(new int[20][150], 0, 0, new int[5]);
答案 6 :(得分:0)
尝试: 你需要给出参数的实际值来使用你创建的VehInfo构造函数初始化VehInfo类型的对象:
int[][] myint1 = new int[5][5]; //Allocating memory for 5x5 array
myint1 = {{ 1, 2, 3, 4, 5},
{ 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
VehInfo myVehInfo = new VehInfo(myint1, 5, 5, int[5]);