Все, у меня есть то, что кажется простой проблемой не при загрузке массива, а в процессе загрузки по списку. Кажется, он всегда возвращает последнюю запись, загруженную независимо. Я попытался ограничить то, что было сохранено в ArrayList (itemVal = 2), чтобы увидеть, было ли это единственное возвращаемое значение. Но это не так. Код ниже:ArrayList не возвращает массив, но последний элемент
import java.util.ArrayList;
public class testNewClass{
// element layout:
// String defTitle
// int seriesVal
// int itemVal
// double x coordinate
// double y coordinate
static String defTitle;
static int seriesVal;
static int itemVal;
static double xCoordinate;
static double yCoordinate;
/*
* Private constructor
*/
private static ArrayList<testNewClass> testList = new ArrayList<testNewClass>();
/*
* Methods
*/
public static void setAll(String title, int series, int item, double x, double y){
testNewClass newTest = new testNewClass();
newTest.defTitle = title;
newTest.seriesVal = series;
newTest.itemVal = item;
newTest.xCoordinate = x;
newTest.yCoordinate = y;
if (item == 2){
testList.add(newTest);
System.out.println("count of testList="+testList.size());
System.out.println("LOADING..series="+series+" item="+item+" x="+x+" y="+y);
}
}
public void setTitle(String title){
this.defTitle = title;
}
public static String returnNext(int Series, int Item){
String rtnVal = null;
System.out.println("testList(size)="+testList.size()+"..Series="+Series+"..Item="+Item);
for (int i=0; i<testList.size(); i++){
int nSeries = testList.get(i).seriesVal;
int nItem = testList.get(i).itemVal;
System.out.println("X="+testList.get(i).xCoordinate);
System.out.println("(i)="+i+" nSeries="+nSeries+" nItem="+nItem);
if (nSeries == Series && nItem == Item){
double lX = testList.get(i).xCoordinate;
double lY = testList.get(i).yCoordinate;
rtnVal = "x=" + lX + " y="+lY;
break;
}
}
return rtnVal;
}
}
Этот код трудно читать и не имеет смысла. Почему вы храните список экземпляров класса, в котором нет ничего, кроме статических членов? Вы понимаете, что «статический» означает «истинно для класса»? Каждый экземпляр будет иметь одинаковые значения. – duffymo
Он вызывается из другого класса для хранения координат x и y вместе с некоторыми другими данными в массиве (списке). –
Спасибо. Проблема решена. Проблема была связана со статической ссылкой на значения элементов класса. –