2014-03-13 90 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。 –