Abend zusammen.
Und zwar möchte ich gerne die Struktur einer Tabelle in einem Objekt speichern. Als Attribute möchte ich gerne Tabellenname, Spaltenname mit Datentyp und Key hinterlegen.
Dafür habe ich eine Klasse erstellt. Um die 3 Attribute für eine Spalte hinterlegen zu können habe ich eine weitere Klasse erstellt.
Damit die Klasse getTableFields() MyFields übergeben kann, muss diese Klasse public sein. Dies empfinde ich recht unschön, da sie so von Außen erreichbar ist.
Desweiteren kann ich wiederum nur auf den Vector.Fieldname zugreifen, wenn ich wiedere get Methode schreibe (siehe Auskommertieren Bereich), doch dann kann ich mir die getTableFields() Methode auch irgend wie sparen...
Da ich wenig Erfahrung im Bereich Klassen habe würde mich interessieren, wie ich korrekt solch eine Klasse aufbaue, dass ich am Ende ein Object Tables habe wo ich einen Namen setzen kann sowie x Spalte mit je 3 Atributen und auf diese wieder zugreifen kann.
Schon einmal vielen Dank.
Meine Klasse:
Und hier mein Testaufruf:
Und zwar möchte ich gerne die Struktur einer Tabelle in einem Objekt speichern. Als Attribute möchte ich gerne Tabellenname, Spaltenname mit Datentyp und Key hinterlegen.
Dafür habe ich eine Klasse erstellt. Um die 3 Attribute für eine Spalte hinterlegen zu können habe ich eine weitere Klasse erstellt.
Damit die Klasse getTableFields() MyFields übergeben kann, muss diese Klasse public sein. Dies empfinde ich recht unschön, da sie so von Außen erreichbar ist.
Desweiteren kann ich wiederum nur auf den Vector.Fieldname zugreifen, wenn ich wiedere get Methode schreibe (siehe Auskommertieren Bereich), doch dann kann ich mir die getTableFields() Methode auch irgend wie sparen...
Da ich wenig Erfahrung im Bereich Klassen habe würde mich interessieren, wie ich korrekt solch eine Klasse aufbaue, dass ich am Ende ein Object Tables habe wo ich einen Namen setzen kann sowie x Spalte mit je 3 Atributen und auf diese wieder zugreifen kann.
Schon einmal vielen Dank.
Meine Klasse:
Code:
import java.util.Vector;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author sl
*/
//------------------------------------------------------------------------------
public class Tables {
private String sName;
private Vector<MyFields> vFields = new Vector<MyFields>();
//------------------------------------------------------------------------------
public class MyFields {
private String sFieldname;
private String sDatatype;
private byte bKey;
/*public byte getBKey() {
return bKey;
}
public String getSDatatype() {
return sDatatype;
}
public String getSFieldname() {
return sFieldname;
}*/
public MyFields(String Fieldname, String Datatype, byte Key){
this.sFieldname = Fieldname;
this.sDatatype = Datatype;
this.bKey = Key;
}
}
//------------------------------------------------------------------------------
//--------------------------------------------------------------------------
public void setTableName(String Name){
sName = Name;
}
//--------------------------------------------------------------------------
public String getTableName(){
return sName;
}
//--------------------------------------------------------------------------
public void setTableFild(String Fieldname, String Datatype, byte Key){
vFields.add(new MyFields(Fieldname,Datatype,Key));
}
//--------------------------------------------------------------------------
public Vector<MyFields> getTableFields(){
return vFields;
}
//--------------------------------------------------------------------------
}
Und hier mein Testaufruf:
Code:
Tables test = new Tables();
test.setTableName("Nudel");
test.setTableFild("a", "b", (byte)1);
System.out.println(test.getTableFields().get(0).getSFieldname());