Я пытаюсь сделать DBManager
, чтобы разрешить соединения с БД, так что вот контекст.как клонировать объект java
У меня есть abstract class Entitie
, который имеет структуру для каждого entitie в БД, важные вещи, в данном случае имя таблицы, идентификатор и абстрактный метод (setContentValues
), которые получают значения из Cursor
и положить их в переменных (метод является абстрактным, поскольку переменные изменяются в зависимости от того, что такое entitie).
В DBManager у меня есть метод getAll, я передаю dummyEntitie, который имеет только id и, очевидно, класс по умолчанию имеет имя таблицы.
Итак, я пытаюсь построить arraylist
того же класса, что и метод. Итак, у меня есть идея, чтобы клонировать dummyEntitie
, позвоните setContentValues
и добавьте его в arraylist
. Но каждый раз, когда я пытался вызвать метод .clone
, у меня есть ошибка в IDE, поэтому я не знаю, что не так, или как клонировать объект.
Вот код:
public ArrayList<Entitie> getAll(Entitie dummyEntitie){
ArrayList<Entitie> entities = new ArrayList<Entitie>();
String selectQuery = "SELECT * FROM " + dummyEntitie.getTableName(); // Select All Query
db = getWritableDb();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
try {
dummyEntitie = dummyEntitie.clone();
} catch (Exception e) {
e.printStackTrace();
}
dummyEntitie.setID(Integer.parseInt(cursor.getString(0)));
dummyEntitie.setContentValues(cursor);
entities.add(dummyEntitie);
} while (cursor.moveToNext());
}
// return contact list
return entities;
}
Сделайте свой ** Абстрактный класс Entitie ** ** cloneable **, реализуя его. поэтому весь ** детский класс ** ** Entitie ** также будет ** клонироваться **. – Prashant