2013-10-07 69 views
0

這不是錯誤,我只是不喜歡在Eclipse中顯示警告。原始堆棧與通用堆棧<Character>

Stack is a raw type. References to generic type Stack<E> should be parameterized 

我知道我可以通過提供一流的性格爲E修復它,但因爲我將使用.charAt,我寧願簡單地使用<char>,因爲這類型charAt回報。有沒有辦法讓我使用char作爲參數,如果沒有,我會遇到鑄造問題使用<Character>

+0

'Stack '有什麼問題?你不能把'char'作爲類型參數。 –

+0

那麼你要使用'charAt()'方法在'Stack'中填充值。你可以指定'Character'類作爲你的堆棧的類型參數,並且只需將'charAt'輸出添加到它。 Autoboxing會在內部發生,你的'char'將被插入你的'Stack'作爲'Character'而不會大驚小怪! – SudoRahul

+0

好的,謝謝,我真的不確定它是否會自動複製,這是我最大的問題,謝謝! – JediCreed94

回答

1

您必須使用Character而不是char的原因是Java中的泛型類型參數不能是基元類型。這是沒有辦法的。如果你想使用標準的Java集合框架,你只需要忍受這一點。

至於警告關心:

  • 他們警告,並可以被抑制。您可以在源代碼中執行此操作(使用@SuppressWarning批註),或更改Eclipse Java編譯器首選項。

  • 總是可以編寫一個通用的等價物來使用原始類型。

0

您不能實例化具有原始類型的泛型類型。詳情請參閱here

您可以使用Character類。要獲得原始數據類型,您可以始終使用Character類中的charValue()方法。