1
在Java
中,抽象類的靜態成員將通過其子類繼承。 像如何在Scala中實現這個Java機制?
abstract class TopThing{
public TopThing next;
public TopThing(TopThing tt){
this.next = tt
}
private static HashTable<String, TopThing> someTable = new HashTable<String,TopThing>();
protected void add(String name) {
someTable.put(name, this);
public static Parent forName(String name) {
return someTable.get(name) ;
}
}
class SomeSpecific extends TopThing {
public final String name;
public SomeSpecific (String name, TopThing tt) {
super(tt);
this.name = name;
this.add(name);
}
這是我第一次在斯卡拉, 寫我知道實現上述使用的同伴對象的唯一方法,但它似乎對這種情況下
- 可不可以不工作伴隨對象存儲私有靜態表? (好像不是......)
- 如果我可以在伴隨對象中聲明該表,是否可以從伴隨類引用 ? (看起來不是......)
- 在
add
方法中,子類的實例如何被引用並插入到表中? (這個問題也是this
在add
方法) - 在斯卡拉這是一個很好的做法嗎?
「我不知道怎麼回答。」我很樂意在高質量的T恤上擁有這款產品。最好用洛爾卡特。另外,我會+1回答子彈#4,除了someTable應該是表格,我認爲,在其他迴應。 –
將表放置在trait中將創建一個_per instance_,它與Java代碼的_static_表完全不同。 – DaoWen