2016-06-13 118 views
0

這不是重複,請閱讀問題和理解,我有一個對象(一個char [],對象[],但對象從對象,它是一個字符數組(不是對象[])獲取字符串

public String getStringFromObject(Object o){ 
    // What do I do here to get a String? o is actually a char[] 
} 

我有用於表示字符陣列的Java對象:

我獲得通過一個Object cred成方法

L.info("Credentials component type is {} and is array -> {}", 
     cred.getClass().getComponentType(), cred.getClass().isArray()); 

此打印:Token's credentials are: [s, d, f] and type is [C

如何進入一個字符串呢?我無法弄清楚如何將對象投射到任何種類的[]數組。如果是從Object[]開始,那不會是一個問題。

+0

'[C'表示它是一個'char []',因此被轉換成這個。然後調用String(char [])'構造函數。 – Thomas

+0

輸出似乎來自不同的日誌語句。你確定你發佈了正確的嗎? – manouti

+1

[如何將字符數組轉換回字符串?](http://stackoverflow.com/questions/7655127/how-to-convert-a-char-array-back-to-a-string) – utybo

回答

4

如果你有char[],並且希望將其轉換爲一個String只需使用constructor

public String(char[] value) 

javadoc

分配一個新的String所以它代表的當前包含在字符數組參數中的字符序列。字符數組的內容被複制;字符數組的後續修改不會影響新創建的字符串。


如果你有一個Object是這裏char[]是你擁有的一切:

char[] x = ....; 
Object objectIsACharArray = x; 
String s = new String((char[]) x); 

如果Object不是char[]而是代表或持有的東西一個字符數組,您需要一個自定義代碼將其轉換爲String

+0

您不明白這個問題。我有一個對象。 – mikeb

+0

@mikeb我編輯了我的答案。 –

+0

沒有'String'構造函數需要一個'Object'。因爲這個原因,你不能只聲明'x'爲'Object'然後調用'new String(x)'。我相信,鑄造是一種選擇。 – bcsb1001

相關問題