我有NodeType
s和Node
s的概念。 A NodeType
是一組元數據,您可以從中創建Node
實例(很像整個類/對象關係)。通用方法類型安全
我有各種NodeType
實現和各種節點實現。
在我AbstractNodeType(用於NodeTypes頂層)我有b抽象createInstance()
方法會,一旦由子類實現時,創建正確的節點實例:
public abstract class AbstractNodeType {
// ..
public abstract <T extends AbstractNode> T createInstance();
}
在我NodeType
實現我實現類似方法這樣的:
public class ThingType {
// ..
public Thing createInstance() {
return new Thing(/* .. */);
}
}
// FYI
public class Thing extends AbstractNode { /* .. */ }
這是一切都很好,但public Thing createInstance()
產生圍繞類型安全的警告。具體做法是:
類型安全:從類型 ThingType需要選中轉換 從類型符合與T AbstractNodeType
我在做什麼錯 的createInstance()的返回類型的事引起這樣的警告?
我該如何重新考慮我的代碼來解決這個問題?
@SuppressWarnings("unchecked")
不好,我想通過正確編碼來解決這個問題,而不是忽略問題!
哇靠這很酷。你說得對,它確實沒有收到它解僱的酒吧! – SCdF 2008-09-17 10:23:34