我对java int数组初始化有疑问。我想根据条件设置宽度,但是当我尝试编译时显示格式错误的声明。我的数组初始化有什么问题吗?
int []widths;
if(condition 1)
{
widths = {1,4,5,3};
}
if(condition 2)
{
widths = {1,9,5,3,2};
}
method1.setWidth(widths ); //method that take int array as argument.
最佳答案
widths = {1,4,5,3}
仅当它是数组变量的声明的一部分时才有效。
将您的代码更改为:
int[] widths;
if(condition 1) {
widths = new int[] {1,4,5,3};
}
if(condition 2) {
widths = new int[] {1,9,5,3,2};
}
method1.setWidth(widths);
如果两个条件都不为真,则还应考虑为
widths
数组提供默认值,否则代码将无法通过编译。可能是这样的:
int[] widths = null;
if(condition 1) {
widths = new int[] {1,4,5,3};
}
if(condition 2) {
widths = new int[] {1,9,5,3,2};
}
if (widths != null) {
method1.setWidth(widths);
}