2014-01-14 62 views
0

我在dialog.xml以下屬性:如何檢查String []類型的頁面屬性?

現在我創造了新的一頁,有三個值(字符串1,字符串,STRING3)填補了這一特性。這個屬性在CRX JCR:內容是這樣的:

Name  | Type  | Value 
------------------------------ 
myProperty | String[] | string1, string2, string3 

現在我想用java訪問該屬性,並檢查它是否具有類型爲String []。我這樣做如下:

boolean result = myPage.getProperties().get("myProperty") instanceof String[]; 

結果返回「false」。

如何檢查,如果myProperty是字符串數組?

P.S:String.valueOf(...).get("myProperty"))回報[Ljava.lang.Object;@761139f3

+0

爲什麼你需要一個類型參數?簡化您的設計 - 只需使用簡單的名稱,值對,您就可以確定它是否具有多個值並適合於某個數組。這將簡化將來對屬性文件的維護 – user1428716

回答

1

您可以嘗試以下操作。如果屬性是多值的,它將返回true,否則返回false。

Property myProp = myPage.getProperties().get("myProperty"); boolean result = myProp.isMultiple();

然後,我們可以得到屬性的值,然後檢查其類型。

if(result) { Value[] values = myProp.getValues(); for(Value value : values) { value.getString(); } }

1

要檢查是否obj類型爲String數組,你可以做到這一點的。

System.out.println(obj instanceof String[]); 

但是你已經這樣做了。

在你的情況下,顯然該類型不是String[]而是Object[]

此外,您可以檢查此Object[]的第一個元素的類型是
String的,但是,這並不意味着其他元素將是String類型的了。

相關問題