Да, у каждого из типов есть явные методы getXXXReps, но я обрабатываю всевозможные сообщения, я не знаю, что они могут или не могут быть ... пишу общее количество для вещей, независимо от типа сообщение это.
Я получил следующее, где S - это Сообщение:
try {
AbstractGroup m2 = (AbstractGroup) s;
result = m2.currentReps(part);
} catch (HL7Exception | ClassCastException e) {
if (s.getClass().getSuperclass().getName().matches("ca.uhn.hl7v2.model.AbstractSegment")) {
AbstractSegment m3 = (AbstractSegment) s;
Type[] t = m3.getField(Integer.parseInt(part));
result = t.length;
} else {
result = 1; // Should NEVER be able to be reached, BUT, adding it just to be safe
}