2014-03-13 131 views
0

想法是在這裏,我想讓用戶鍵入一個字符,然後將其添加到其他字符的ArrayList,但是當我嘗試添加它時,eclipse會出現此錯誤:如何將字符轉換爲對象

在ArrayList類型的方法Add(性格)不適用的參數(炭)

所以我在想,我怎麼能炭轉換爲對象?

+0

請給我們看一些代碼。 – Brian

+3

向我們顯示您的代碼。這應該自動完成。 –

+1

哪個Java版本,btw? – ankon

回答

3

使用Character#valueOf()方法:

List<Character> list = new ArrayList<Character>(); 
list.add(Character.valueOf('c')); 
+1

這不應該是必要的。 –

+0

@SotiriosDelimanolis - 但它絕對沒有傷害。 –

+0

根據您的警告設置,可能需要:假設應該不惜一切代價避免自動裝箱的政策。 – ankon

1
List<Character> characters = new ArrayList<Character>(); 
char character = 'a'; 
characters.add(character); 
+0

這可行,但可能不是什麼問題是關於... –

2

我幾乎可以肯定,你已經在同一個包,你正試圖運行的代碼定義了自己的Character類。使用完全限定的類名來避免這些問題。

拳擊轉換隻能從java.lang.Characterchar反之亦然,反之亦然(以及其他這樣的原始類型到他們的包裝)。它不適用於您的自定義類型。如果您繼續使用自己的Character課程,則需要自行轉換char

+0

除了ArrayList將引用java.lang.Character,並且OP不能覆蓋它。由於錯誤信息清楚地表明該方法是ArrayList.add(Character),所引用的「Character」必須是java.lang.Character(除非OP創建了他自己的ArrayList版本)。 –

+1

@HotLicks你怎麼看?如果我創建一個類字符,我可以確定它們的一個通用列表... – Cruncher

+2

@HotLicks如果Character類在同一個包中,它將優先於java.lang.Character。 –