2015-09-25 127 views
0

如果我的程序是使用Class TreeNode是延伸的ComparableKeyValuePair爪哇 - 擴展逆轉

其中:

Root可以是TreeNodeTreeNodeComparableKeyValuePair 爲此,RootComparableKeyValuePair

我該如何申報這樣的東西

TreeNode node; 
ComparableKeyValuePair tempNode; 

node = tempNode; 
+0

你不能這樣做,因爲編譯器不能確定'tempNode'實際上是一個'TreeNode'。我可以創建一個不是「TreeNode」的「ComparableKeyValuePair」子類型。你需要演員。 –

+0

除非'tempNode'碰巧指向'TreeNode',否則你不能這樣做,然後你可以明確地施放它。但這似乎是一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),所以請解釋你真的需要做什麼,你認爲需要這個。 – RealSkeptic

回答

0

如果tempNode不是TreeNode,那麼你不能這樣做。如果是這樣,你可以寫node = (TreeNode)tempNode。如果演員失敗,您將獲得ClassCastException

+0

這實際上工作... – Sean