В моем основном методе мне нужно распечатать два объекта, созданных во втором классе. Это мой код.Как переопределить метод toString, когда мой объект содержит массив?
public String toString(){
String z = "";
for(int i = 0; i<data.length;i++){
z = z + data[i] + ", ";
}
return z;
}
У меня есть конструктор Stat, который устанавливает данные массива в массив, вызываемый в вызывающем объекте.
public Stat(double[] d){
double[] data = new double[d.length];
this.data = data;
Это, как я инициализируюсь данные
int i=1;
private double[] data = new double[i];
Это класс вызывающего
public static void main(String[] args){
double[] data = {1.0, 2.0, 3.0};
Stat statA = new Stat(data);
data[0] = 3.0;
data[1] = 4.0;
data[3] = 5.0;
Stat statB = new Stat(data);
System.out.println("statA data= " + statA.toString());
System.out.println("statB data= " + statB.toString());
Когда я запускаю отладчик объекты содержат правильные значения данных, но когда я называю ToString, они оба печатают {0.0, 0.0, 0.0}
Почему вы думаете, что проблема с 'toString'? –
FYI: вы можете сократить ваш 'toString()', чтобы возвращать String.join (",", data); 'if' data' является 'List' (может быть легко внесен в список). –
Gavin