2012-03-08 45 views
0

好的,只有2行代碼。我瞭解第一行。第二行的含義是什麼以及何時以及爲什麼我必須使用此行?Java:定義這樣的角色的原因是什麼?

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

請回答所有的問題。(什麼,何時,爲何)

+0

請注意,在使用基元和包裝/對象之間存在。 http://stackoverflow.com/questions/239560/when-should-i-use-primitives-instead-of-wrapping-objects – 2012-03-08 18:53:24

回答

6

char是基本類型。 Character是包裝上,以基本類型,因爲你可以在Java documentation

Character類看到在 對象包裝基本類型char的值。 Character類型的對象包含一個字段,其類型爲 是char。

此外,本課程還提供了幾種確定字符類別(小寫字母,數字等)的方法以及用於將字符從大寫字母轉換爲小寫字母,反之亦然的幾種方法。

+1

它在反射時也很有用,因爲你不能將Object類型轉換爲原始類型。 – 2012-03-08 19:30:51

1

第一行要創建一個原始char其中作爲第二個創建Character對象。你不必使用其中一個。這取決於你在用你的代碼做什麼。一般來說,java會根據需要解開原始圖元。

4

Character是原始類型char的包裝。它允許您以更加面向對象的方式使用原始的char

1

這就是所謂的盒裝基元,例如,當你想將基元放入Collection時,它們很有用。由於集合必須保存對象,因此您不能僅聲明Collection<char>,因此您需要使用Collection<Character>

4

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)); 
2

這是主類型字符的包裝類。因爲這是一個對象,所以可以像使用其他對象一樣使用它,例如某些集合使用對象,或者一個字符也可以爲null,而char不能。