ViewEntry - columnValues.get(0)有时是多值列

时间:2017-10-06 09:57:31

标签: java xpages lotus-notes

我想在第一个排序的分类视图列中收集值。

但是,由于列公式,有时值可能是多值的:

names := @If(Form = "project"; projectManager : projectCustomer;                            Form = "budget"; docAuthors; Form = "plan"; "docOwners"; "[Unknown]");

@Return(@Name([Abbreviate];@Unique(names)))

某些字段是单值,有些是多值。

我试过

Vector<String> names= entry.getColumnValues();
String name = String.valueOf(names.get(0));

但是这会将数组转换为字符串

Vector<String> names= entry.getColumnValues();
String name = names.get(0);

打破了代码。

任何人都有建议从列中获取值吗?

1 个答案:

答案 0 :(得分:3)

您是否尝试检查值的类型?像这样:

Vector<?> data = entry.getColumnValues();
Object tmp = data.get(0);
Vector<?> result = new Vector();

if( tmp instanceof String ){
    result.add( (String) tmp );
}

if( tmp instanceof ArrayList ){
    ArrayList list = (ArrayList) tmp;
    for( int i=0; i<list.size(); i++ ){
        result.add( list.get(i) );
    }
}

if( tmp instanceof Vector ){
    Vector<?> vec = (Vector) tmp;
    for( int i=0; i<vec.size(); i++ ){
        result.add( vec.get(i) );
    }
}


return result;

然后,您将始终获得包含所有值的Vector(即使它只是一个值)