В классе 3 метода: save, get и delete
public class Storage {
Somedata[] storage = new Somedata[5];
int i = 0;
void save(Somedata r) {
i++;
storage[i - 1] = r;
}
Somedata get(String uuid) {
int j;
for (j=0; j < storage.length; j++) {
if (storage[j].uuid == uuid) {
return storage[j];
} else return null;
}
return storage[j];
}
void delete(String uuid) {
for (int m=0; m < storage.length; m++) {
if (storage[m].uuid == uuid) {
storage[m]=null;
}
}
}
}
Соответственно, создают, достают и удаляют объекты класса Somedata из массива storage; Метод, из которого должны вызываться методы
public class MainArray {
public static void main(String[] args) throws IOException {
private final static Storage STORAGE = new Storage();
String uuid = null;
// Подробности ввода uuid через System.in опущены //
case "save":
r = new Somedata();
r.uuid = uuid;
STORAGE.save(r);
break;
case "get":
System.out.println(STORAGE.get(uuid));
break;
case "delete":
STORAGE.delete(uuid);
break;
}
}
Для условия if (storage[m].uuid == uuid) метода delete выдает ошибку NullPointerException
Но метод get работает без ошибки. В нем реализовано такое же условие if (storage[m].uuid == uuid) И на него NullPointerException не выскакивает...
ты возвращаешь первый элемент если он подходит, или null
если не подходит
Somedata get(String uuid) {
int j;
for (j=0; j < storage.length; j++) {
if (storage[j].uuid == uuid) {
return storage[j];
}
}
return null;
}
да, но ты забыл про пустые места в своем хранилище!
void delete(String uuid) {
int m;
for (m=0; m < storage.length; m++) {
if (storage[m]!=null && storage[m].uuid == uuid) {
storage[m]=null;
return;
}
}
}
Нашел ошибку. Надо было прервать цикл, чтобы он не дошел до null-элементов. Реализовал это через break;
void delete(String uuid) {
int m;
for (m=0; m < storage.length; m++) {
if (storage[m] != null) {
if (storage[m].uuid == uuid) {
storage[m]=null;
break;
}
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть метод добавления товара в корзину, когда вызываю его в первый раз, всё отрабатывает корректно, когда вызываю второй раз в product ничего...
нужна команда(ы), которые смогут проверить, есть ли ф указаном пути, файлы, разных расшрений, или просто, чтобы по имени файлов нашло их
Главный поток входит в монитор объекта AСоперничающий входит в монитор объекта B
Пытаюсь написать запрос на hql, который вернет одну цифру методом getSingleResult(), все вполне сносно работало до тех пор, пока не появилась нужда...