Java检查对象是否是instanceof对象

时间:2018-10-15 06:41:20

标签: java loops if-statement

我已经创建了一个函数,该函数需要显示对象的历史记录条目。 例如,我有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循环。

谢谢。

Greets Adem

1 个答案:

答案 0 :(得分:0)

要检查多个历史记录中的所有历史记录条目,我使用了这段代码,但上面的if语句除外。

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

这有助于我将每一项从1增加到x