Как всегда возвращать java.util.Vector

Если значение в моем элементе управления имеет только одно значение, следующий код вернет строку, если есть более одного значения, код вернет java.util.Vector.

getComponent("mycontrol").getValue();

Я хочу, чтобы этот код возвращал вектор, даже если есть только одно значение.

Я видел несколько фрагментов кода, которые преобразуют мою строку в массив, но я хочу получить вектор.


person Thomas Adrian    schedule 04.02.2012    source источник


Ответы (1)


Невозможно заставить единственное значение возвращаться как java.util.vector (или Array, если на то пошло). Единственный способ - проверить, является ли это вектором, а затем построить вектор, если нет. Вы можете поместить его в функцию и обернуть вызов в нее... например (это непроверенный код, поэтому вам нужно проверить синтаксис и т. д.):

asVector(getComponent("mycontrol").getValue());

function asVector(obj) {
  if (obj.constructor === java.util.Vector) {
    return obj;
  } else {
    var x:java.util.Vector = new java.util.Vector();
    x.add(obj);
    return x;
  }
}
person Jeremy Hodge    schedule 04.02.2012
comment
Спасибо Джереми, это сработало довольно хорошо, но это сработало еще лучше. Я изменил obj.contructor на typeof function asVector(obj) { if(typeof obj === "java.util.Vector") { return obj; } else { var x:java.util.Vector = new java.util.Vector(); x.add(obj); return x; } } Не уверен, что мне нравятся эти комментарии, они плохо форматируются - person Thomas Adrian; 04.02.2012