2016-08-01 92 views
-2

我有以下類Type如何在Java中創建Record類?

class Type{ 
    String type; 
    public Type(String type){ 
     this.type = type; 
    } 
} 

我在這裏初始化幾類:

Type cor = new Type("cor"); 
Type name = new Type("name") 

,現在我想有一個叫Record類,

class Record{ 
    String name; 
    Type[] types; 
    public Record(String name, Type[] types){ 
     this.name = name; 
     this.types = types; 
    } 
} 

嗯,我卡在這裏了。我想要做的是初始化類Record的實例時,就像這樣:

Record rec = new Record("Position", ...); 

它應該是這樣的,我會給這裏的位置記錄的例子:

Record Position = [cor x, cor y, name z]; 

那麼在這裏使用Type []是一個不錯的選擇?我發現很難記錄類型和變量名稱,如x,y; 或者我應該使用HashMap?

+0

什麼是試圖建模的Record類?它目前看起來像一個任意數據類型的容器(因此不是很有用)。另外,'Type'只是一個命名字符串的包裝;它應該用於什麼? –

+0

呃,'int'是一個原始類型,而不是一個Type類型 – Li357

+0

爲了使這個問題在這裏更清晰,我只留下一個包裝器。問題是在記錄類中記錄類型實例和類型名稱 –

回答

0

如果沒有更多關於你想要建模的信息,很難回答這個問題。你的'位置'的例子相當混亂,因爲它意味着單個記錄有不同類型的幾個「變量」。不過,我假設一個記錄可以有幾種類型。目前還不清楚這些類型是否可以改變,以及是否有固定的類型。

理想類型的集合是靜態的,你可以使用的類型枚舉:如果設置的類型不是活得

Record record = new Record("My record", EnumSet.of(RecordType.NAME)); 

enum RecordType { 
    COR, NAME, ...; 
} 

class Record { 
    public Record(String name, EnumSet<RecordType> types) { 
     ... 
    } 
} 

然後創建一個新的紀錄會是什麼樣子t靜態,那麼你將需要定義一個類。在這種情況下,我建議您使用Set<RecordType>而不是RecordType[]作爲構造函數參數。這就清楚地表明它是一組類型(即沒有重複),並且避免了你需要對數組進行的所有錯誤檢查。

如果單個記錄可以有多個不同類型的值,那麼您將需要有一個Map<RecordType,String>成員變量。在這種情況下,我會建議不要嘗試在構造函數中定義值。相反,有一個addTypeValue方法爲地圖添加值。