1

我在 dialog.xml 中有以下属性:

现在我创建了新页面并用三个值(string1、string2、string3)填充了这个属性。crx jcr:content 中的这个属性如下所示:

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

现在我想用 java 访问这个属性并检查它是否具有 String[] 类型。我这样做如下:

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

结果返回“假”。

如何检查 myProperty 是否为字符串数组?

ps:String.valueOf(...).get("myProperty"))退货[Ljava.lang.Object;@761139f3

4

2 回答 2

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(); } }

于 2014-01-14T13:17:32.090 回答
1

要检查是否obj是字符串数组类型,您可以执行此操作。

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

但你已经这样做了。

在您的情况下,显然类型不是String[]但是Object[]

此外,您可以检查 this 的第一个元素Object[]是否属于类型
String,但这并不意味着其他元素也属于类型String

于 2014-01-14T12:35:50.983 回答