比方說,我有這個泛型類,做一些工作,併產生一個結果:強制類型安全的通用方法的實現
public abstract class Work<T> {
private T mResult;
public Work(T result) {
mResult = result;
}
public abstract <T> void doWork(T result);
public T getResult() {
return mResult;
}
}
對於這個類的用戶,我想類型安全看起來會像這樣:
Work<MyResult> work = new Work<MyResult>(new MyResult()){
public void work(MyResult result){
//...
}
}
的問題是Java不以這種方式工作,並迫使我從通用型投:
Work<MyResult> work = new Work<MyResult>(new MyResult()){
public <T> void work (T result){
// (MyResult)result - not nice
}
}
有沒有類似於第一個例子那樣的方式來保證類型安全?
感謝, 張志賢