2014-06-26 24 views
-1

我有推文存儲在MongoDB數據庫中,並且將它們拉出以進行一些分析。將字符串「null」作爲Java中的對象處理

在這種情況下,我期待在與鳴叫相關的主題標籤,並使用下面的代碼:

BasicDBList hts = (BasicDBList)obj.get(Constants.HASHTAGS_STR); 
if (!hts.isEmpty()) 
    tb.setHashtags(hts.toArray(new String[0])); 

這工作完全...直到我碰到它用了「推特來null「作爲主題標籤。

在這種情況下,所述HTS陣列是:

[ null ] 

的主題標記被存儲在一個TreeSet內部,並在比較的插入失敗。我不想通過與null進行比較來丟棄此標籤 - 是否有更好的解決方法?

字符串文字「null」存儲在數據庫中。 BasicDBList將其作爲Object讀出並且該對象轉換爲String時,會發生該問題。該字符串變爲空字符串,而不是字符串「null」。我想了解如何獲得正確解釋的數據,使得具有

tb.setHashtags() 

導致結核病哈希標籤「空」與它相關聯,而不是拋出一個錯誤。

+4

呃,' 「空」'(字符串)是*不*了'null'值。這個4個字母的字符串在'equals'下可以正常工作。 – user2864740

+2

String'「null」'沒有什麼特別之處,就像比較其他任何字符串一樣。 –

+1

另外,'new String [0]'是一個空數組,不爲空。 –

回答

0

驗證List(BasicDBList)hts是否包含Null值。

toArray方法從ArrayList繼承,它可能會返回一個包含Null值的Array。

看一看http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html#toArray(T%5B%5D)

+0

我包含了上面的BasicDBList的內容。在列表實際上包含null的情況下,它顯示爲[],而不是[null] – betseyb

+0

您正在使用繼承ArrayList方法toArray的BasicDBList類實例。在這個方法中,將會創建一個類型與發送參數[這裏是新的String [0]]類型相同的數組,並且其大小可能因列表項目而異。列表項的數量可能與數組長度不同,所以其餘的indeces必須爲null。你不需要擔心字符串文字「null」,顯然它是一個字符串。 –

+0

您的理解只是試圖檢查,'hts'列表的長度和'hts.toArray(new String [0])'' –

相關問題