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

ViewEntry - columnValues.get(0) sometimes multivalue column

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

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

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

破解密码。

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

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

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;

那么你总是会得到一个包含所有值的向量(即使它只是一个值)