Bro*_*olf 5 java architecture class
我想为Java类创建一个接受3个参数的初始化方法:
Employee[] method( String[] employeeNames, Integer[] employeeAges, float[] employeeSalaries )
{
Employee myEmployees[] = new Employee[SIZE];// dont know what size is
for ( int count = 0; count < SIZE; count++)
{
myEmployees[count] = new Employee( employeeNames[count], employeeAges[count], employeeSalaries[count] );
}
return myEmployees;
}
Run Code Online (Sandbox Code Playgroud)
您可能会注意到此代码是错误的.SIZE变量未定义.我的问题是我想传入3个数组,但我想知道我是否可以确保三个数组都是相同的数组大小.这样for循环不会失败,因为for循环中的构造函数使用数组的所有参数.
也许Java有一个不同的功能,可以强制解决我的问题.我可以接受另一个名为SIZE的参数,该参数将在for循环中使用,但如果参数1和2的大小为10且第3个参数是大小为9的数组,则不能解决我的问题.
所以,只是为了改变,我不清楚.如何强制执行3个参数是包含完全相同数量元素的所有数组?
使用指定数组大小的额外参数不是很优雅而且很脏.它也没有解决数组参数包含不同大小的数组的问题.
Jon*_*eet 17
您无法在编译时强制执行此操作.您基本上必须在执行时检查它,并在不满足约束时抛出异常:
Employee[] method(String[] employeeNames,
Integer[] employeeAges,
float[] employeeSalaries)
{
if (employeeNames == null
|| employeeAges == null
|| employeeSalaries == null)
{
throw new NullPointerException();
}
int size = employeeNames.length;
if (employeesAges.length != size || employeeSalaries.length != size)
{
throw new IllegalArgumentException
("Names/ages/salaries must be the same size");
}
...
}
Run Code Online (Sandbox Code Playgroud)