Я написал программу JavaME, которая обращается к веб-службе для получения значений, веб-служба работает на сервере Tomcat.
Я сталкиваюсь с очень странной проблемой, когда я запускаю программу, программазагружает новые значения, как я ожидал, но вместо добавления их в унифицированный массив он, похоже, сохраняет предыдущие значения массивов и просто добавляет их.Возможно, код объяснит это лучше.
Сначала я создаю строковый массив для хранения извлеченных значений и небольшого значения int, которое будет использоваться при их цикле, я также создаю хранилище для служб и заглушек:
public class StockQuery extends MIDlet implements CommandListener
{
String[] newResults = null;
int i = 0;
String stockSym = null;
getDataService service = null;
.....
После запуска метода startApp () мидлет вызывает форму, и это позволяет ввести значение в текстовое поле, а затем нажать кнопку отправки, чтобы отправить значение на сервер. Этот сервер отправит обратномассив значений (18, если быть точным).Чтобы реализовать это, я затем вызываю метод commandAction ().
public void commandAction(Command c, Displayable d)
{
else if(c == cmdSend)
{
stockSym = getSym.getString();
service = new getDataService_Stub();
try
{
newResults = service.getStock(stockSym);
for(i=0; i<newResults.length; i++)
{
System.out.println("Data " + i + " - " + newResults[i]);
}
}
catch (RemoteException ex)
{
ex.printStackTrace();
}
Теперь программа должна загрузить и поместить 18 значений в строковый массив и цикл через них.Он делает это, но не сбрасывает предыдущие значения из массива по причинам, которые я не могу понять.
Например, в первый раз, когда я выполнил цикл, программа выполнила цикл и напечатала 18 значений, однако во второй раз она напечатала исходные 18 значений из предыдущего запуска и затем дополнительные 18 значений, которые были у неетолько что скачал.Я закрыл свою среду IDE, перезапустил компьютер и удалил папку кэша Netbeans, и по какой-то причине он всегда будет хранить значения в строковом массиве и значение цикла, даже если я объявил его равным 0 при каждом запуске программы.
Сейчас у меня 15-й запуск программы, и вывод программы:
Data 267 - 34092040
Data 268 - 22.73 - 31.58
Data 269 - NasdaqNM
Data 270 - 1.95
Кто-нибудь может объяснить, почему переменные не очищаются?