Doch wieder offen 
zu 1.: Das hieße also, noch eine Standard-Implementierung für eine Table. Sinnvollerweise könnte ich dann die generische Klasse auch gleich noch abstrakt gestalten, dann kommt wenigstens keiner auf die dumme Idee, diese Klasse instanziieren zu wollen 
zu 2.:
das sieht etwa so aus:
[code=Java]
/**
* Adds a single dataSet to the table.<br>
* @param values
* @throws IllegalArgumentException if the arguments do not match the tables metaData
* @throws ArgumentNumberException if the number of values does not match the number of dataTypes inside the tables metaData
*/
public void addRow(Object[] values) throws IllegalArgumentException, ArgumentNumberException {
if (values.length != this.metaData.size()) throw new ArgumentNumberException("Wrong number of arguments passed");
String debugString = "Add new row to table {";
// create an empty row
Row row = new Row(this.metaData.toArray(new AttributeMetaData[0]));
for (int i = 0; i < this.metaData.size(); i++) {
// this may cause an IllegalArgumentException if the data does not match the rows metaData
row.setValue(this.metaData.get(i).getName(), values[i]);
debugString = debugString.concat("('" + this.metaData.get(i).getName() + "': " + values[i] + ")");
}
if (DEBUG) System.out.println(debugString+ "}");
// if we get here everything went clear
this.values.add((T) row);
}[/code]
wobei AttributeMetaData eine Klasse zur Verwaltung je eines Names und des Datentyps in Form eines Class-Objektes darstellt. this.metaData ist eine Liste, die alle Attribute der Table beinhaltet und selbst vom Typ LinkedList<AttributeMetaData> ist...
Ich hoffe, du bist jetzt glücklich und wirst schlau daraus:toll:
Die Implementierung über Object[] erlaubt mir auch einen Aufruf, bei dem ich - vorrausgesetzt ich kenne die Ordnung und Datentypen der Attribute - diese Angaben nicht jedes Mal erst dazuschreiben muss, ähnlich einem [code=sql]Insert into <tabelle> values(...)[/code]