Hallo, ist es möglich, eine Liste zu erstellen?
Ich habe eine abstrakte Klasse, die eine Methode, die irgendeine Art von List<> nimmt, iterieren durch es in einer for-Schleife immer jedes Objekt in dieser Liste und Aufruf der insertItem abstrakte Methode, die von der Unterklasse implementiert wird, um im Grunde ziehen Sie die richtigen Daten in die Elemente und dann finaly Einfügen Sie in eine Datenbanktabelle hat.
Hier ist die Methode der Superklasse:
protected void insertAllItemsToDb(List<Object> items, String table) {
// open db and table
database().beginTransaction();
// clear all data from table
clearTable(table);
// call a insert statement to insert each column from an item
for (Object object : items) {
insertItem(object, table);
}
// close db
database().endTransaction();
database().close();
}
In der Unterklasse ist hier eine der Überschreibungsmethoden: Die ich bin in der Lage, das Objekt hier gut zu casten.
@Override
protected void insertItem(Object object, String table) {
CalendarEventItem item = (CalendarEventItem) object;
eventItemValue = new ContentValues();
eventItemValue.put(LABEL_EVENTS_TITLE, item.getEventTitle());
eventItemValue.put(LABEL_EVENTS_LOCATION, item.getEventLocation());
eventItemValue.put(LABEL_EVENTS_DATE, item.getEventStartTime()
.getDate());
eventItemValue.put(LABEL_EVENTS_TIME, item.getEventStartTime()
.getTime());
eventItemValue.put(LABEL_EVENTS_TIMEZONE, item.getEventStartTime()
.getTimeZone());
database.insert(TABLE_NAME_EVENTS, null, eventItemValue);
}
dann rufe ich diese Methode von der Superklasse aus mit dieser auf:
events = (List<CalendarEventItem>) items;
insertAllItemsToDb(events, TABLE_NAME_EVENTS);
Aber ich erhalte einen Kompilierfehler, der besagt, dass man es nicht werfen kann. Irgendwelche Ideen, wie ich dies erreichen kann, ohne die gleichen Schritte und Code zu duplizieren, die Sie innerhalb der insertAllItemsToDb() sehen