Java:定义这样的角色的原因是什么?

问题描述:

好的,只有2行代码。我了解第一行。第二行的含义是什么以及何时以及为什么我必须使用此行?Java:定义这样的角色的原因是什么?

char c = 'x'; 
Character C = new Character(c); 

请回答所有的问题。(什么,何时,为何)

+0

请注意,在使用基元和包装/对象之间存在。 http://*.com/questions/239560/when-should-i-use-primitives-instead-of-wrapping-objects – 2012-03-08 18:53:24

char是基本类型。 Character是包装上,以基本类型,因为你可以在Java documentation

Character类看到在 对象包装基本类型char的值。 Character类型的对象包含一个字段,其类型为 是char。

此外,本课程还提供了几种确定字符类别(小写字母,数字等)的方法以及用于将字符从大写字母转换为小写字母,反之亦然的几种方法。

+1

它在反射时也很有用,因为你不能将Object类型转换为原始类型。 – 2012-03-08 19:30:51

第一行要创建一个原始char其中作为第二个创建Character对象。你不必使用其中一个。这取决于你在用你的代码做什么。一般来说,java会根据需要解开原始图元。

Character是原始类型char的包装。它允许您以更加面向对象的方式使用原始的char

这就是所谓的盒装基元,例如,当你想将基元放入Collection时,它们很有用。由于集合必须保存对象,因此您不能仅声明Collection<char>,因此您需要使用Collection<Character>

Java为每种基本类型(int,char,long,float,byte,short,boolean和double)提供一个类。理想是让这个Class而不是基本类型在需要Object的地方运行。

Object a = new Integer(1); 
Object b = new Character(c); 

看到ArrayList,例如:

你不能做:

ArrayList<boolean> list = new ArrayList<boolean>; 

但你可以这么做:

ArrayList<Boolean> list = new ArrayList<Boolean>; 
list.add(new Boolean(true)); 

这是主类型字符的包装类。因为这是一个对象,所以可以像使用其他对象一样使用它,例如某些集合使用对象,或者一个字符也可以为null,而char不能。