Java проверяет, является ли объект instanceof Object - PullRequest
0 голосов
/ 15 октября 2018

Я создал функцию, в которой мне нужно показывать записи истории для объекта.Например, у меня есть 5 объектов, и у каждого из них есть 5 записей, которые возвращали бы мне 25 записей.

Теперь мне нужно увеличить каждую запись для объекта, которая будет возвращать мне для каждого объекта количество записей, котороенаходятся внутри объекта.

Функция должна работать, кроме этой части.

    if(entries instanceof history_entry){
        return Historyindex++;
    }

вся функция

  public static Value getMeasurementHistoryIndex(Session session, Expression expr_id, Expression expr_history_id) {
//if (!(columnExpression instanceof ExpressionColumn)) throw new IllegalArgumentException("column expression expected in localized(<expression>,<locale>)");
Value value_id = expr_id.getValue(session);
Value value_history_id = expr_history_id.getValue(session);

Extent extent = getExtent(session);
if(extent == null || value_id instanceof ValueNull || value_history_id instanceof ValueNull) {
  return ValueNull.INSTANCE;
}

ModelObject obj = null;
Measurement2 measurement = null;
MeasurementHistoryEntry history_entry = null;
History_index Historyindex = null;

if (value_id instanceof ValueString) {
  try {
      obj = extent.get(GUID.parse(value_id.getString()));
  } catch(Exception e) {
      Log.log(Log.DEBUG, "Function GET_MEASUREMENT_HISTORY_INDEX: could not parse measurement ID: " + value_id.getString());
  }
}

if(obj instanceof Measurement2) {
    measurement = (Measurement2)obj;
}

if (value_history_id instanceof ValueString) {
    try {
        obj = extent.get(GUID.parse(value_history_id.getString()));
    } catch(Exception e) {
      Log.log(Log.DEBUG, "Function GET_MEASUREMENT_HISTORY_INDEX: could not parse measurement ID: " + value_id.getString());
    }
  }

if(obj instanceof MeasurementHistoryEntry) {
    history_entry = (MeasurementHistoryEntry)obj;
}

if(measurement == null || history_entry == null) {
    return ValueNull.INSTANCE;
}


ListView history = HistorizableHelper.createDateSortedHistoryListView(MeasurementHistoryEntry.TYPE);
history.setModel(measurement);
ModelObject[] entries = history.getObjects();
history.setModel(entries);


if(entries instanceof history_entry)
{
    return Historyindex++;

}


return ValueNull.INSTANCE;

}

Итакв конце я должен иметь для каждого объекта число, которое возвращает количество записей внутри объектов.

Я надеюсь, что кто-то может помочь мне решить это утверждение if или, может быть, мне нужно сделать цикл for.

Заранее спасибо.

Приветствую Адема

1 Ответ

0 голосов
/ 15 октября 2018

Чтобы проверить все записи истории в нескольких историях, я использовал этот код, кроме приведенного выше оператора if.

    for (int i = 0; i < entries.length; i++) {
    ModelObject entry = entries[i];
    if(history_entry.equals(entry))
    return ValueInt.get(i);

это помогло мне увеличить значение с 1 до x для каждой записи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...