我在dialog.xml中有以下属性:
现在我创建了新页面,并用三个值(string1,string2,string3)填充了这个属性。 crx jcr中的这个属性:内容看起来像这样:
Name | Type | Value
------------------------------
myProperty | String[] | string1, string2, string3
现在我想用java访问这个属性并检查它是否具有String []类型。我这样做如下:
boolean result = myPage.getProperties().get("myProperty") instanceof String[];
结果返回“false”。
如果myProperty是String数组,如何检查?
p.s:String.valueOf(...).get("myProperty"))
返回[Ljava.lang.Object;@761139f3
答案 0 :(得分:2)
您可以尝试以下操作。如果属性是多值的,它将返回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 :(得分:1)
要检查obj
是否为String数组类型,您可以执行此操作。
System.out.println(obj instanceof String[]);
但你已经这样做了。
在您的情况下,显然类型不是String[]
,而是Object[]
。
此外,您可以检查此Object[]
的第一个元素是否为类型
String
但这并不意味着其他元素也属于String
类型。