У меня возникла проблема с компиляцией моего проекта java, потому что целое число длины массива (которое является переменной) не подменяет корректно в моем массиве объектов.Длина массива Java Variable
import java.util.Arrays;
public class ObjectList {
private int N;
private Object[] fractionList = new Object[N];
public ObjectList(int n){
this.N = n;
}
public int capacity(){
return this.N;
}
public void setN(int n){
this.N = n;
}
public String toString(){
return Arrays.toString(fractionList);
}
}
public class FractionDriver {
public static void main(String[] args){
// creates the object list, sets N to 4
ObjectList list = new ObjectList(4);
System.out.println("The Objectlist has " + list.capacity() + " lines");
// prints the array
System.out.println(list.toString());
}
}
это то, что компилятор выводит:
The ObjectList has 4 lines
[]
Из-за этого я не могу добавить любые объекты в моем массиве. Компилятор бросает ArrayIndexOutOfBoundsException: 0 и сообщает мне, что в массиве нет элементов.
Если я выбираю заменить N в переменной экземпляра массива объектов, например, так:
private Object[] fractionList = new Object[4];
Компилятор счастлив и устанавливает длину массива до 4.
Что я делаю не так?
сообщение не получено из компилятора. это выход вашей программы. – Joshua
Не забывайте отмечать ответ как принятый или запрашивать разъяснения в комментариях к ответу, если вы все еще нуждаетесь в помощи, @nisoramen. –