TimeColumn extends AbstractColumn<TimeColumn, LocalTime> implements CategoricalColumn<LocalTime>,
        TimeFilters,
        TimeFillers<TimeColumn>,
        TimeMapFunctions { @Override public TimeColumn appendObj(Object obj) { if (obj == null) { return appendMissing(); } if (obj instanceof LocalTime) { return append((LocalTime) obj); } if (obj instanceof Time) { Time time = (Time) obj; return append(time.toLocalTime()); } throw new IllegalArgumentException( "Cannot append " + obj.getClass().getName() + " to TimeColumn"); } private  TimeColumn(String name, IntArrayList times); private  TimeColumn(String name); static TimeColumn createInternal(String name, int[] data); static boolean valueIsMissing(int i); static TimeColumn create(String name); static TimeColumn create(String name, Collection<LocalTime> data); static TimeColumn create(String name, LocalTime... data); static TimeColumn create(String name, int initialSize); static TimeColumn create(String name, Stream<LocalTime> stream); @Override TimeColumn appendMissing(); @Override TimeColumn subset(int[] rows); @Override TimeColumn lag(int n); @Override boolean isMissing(int rowNumber); int size(); TimeColumn appendInternal(int f); TimeColumn append(LocalTime time); @Override TimeColumn appendObj(Object obj); @Override TimeColumn removeMissing(); @Override String getString(int row); @Override String getUnformattedString(int row); void setPrintFormatter(DateTimeFormatter dateTimeFormatter, String missingValueString); void setPrintFormatter(DateTimeFormatter dateTimeFormatter); @Override TimeColumn emptyCopy(); @Override TimeColumn emptyCopy(int rowSize); @Override TimeColumn copy(); @Override void clear(); @Override List<LocalTime> asList(); @Override void sortAscending(); @Override void sortDescending(); LocalTime max(); LocalTime min(); @Override Table summary(); @Override int countMissing(); @Override int countUnique(); @Override TimeColumn unique(); @Override boolean isEmpty(); @Override TimeColumn appendCell(String object); @Override TimeColumn appendCell(String object, AbstractColumnParser<?> parser); @Override int getIntInternal(int index); LocalTime get(int index); @Override IntComparator rowComparator(); double getDouble(int i); double[] asDoubleArray(); DoubleColumn asDoubleColumn(); @Override String toString(); @Override TimeColumn append(Column<LocalTime> column); @Override TimeColumn append(Column<LocalTime> column, int row); @Override TimeColumn set(int row, Column<LocalTime> column, int sourceRow); List<LocalTime> top(int n); List<LocalTime> bottom(int n); TimeColumn set(int index, int value); TimeColumn set(int index, LocalTime value); @Override TimeColumn set(Selection rowSelection, LocalTime newValue); IntIterator intIterator(); @Override boolean contains(LocalTime time); @Override TimeColumn setMissing(int i); @Override Selection isMissing(); @Override Selection isNotMissing(); @Override int byteSize(); @Override byte[] asBytes(int rowNumber); @Override Iterator<LocalTime> iterator(); @Override TimeColumn where(Selection selection); @Override LocalTime[] asObjectArray(); @Override TimeColumn fillWith(Iterator<LocalTime> iterator); @Override TimeColumn fillWith(Iterable<LocalTime> iterable); @Override TimeColumn fillWith(Supplier<LocalTime> supplier); @Override int compare(LocalTime o1, LocalTime o2);  }
@Test public void testAppendObjIllegal() { assertThrows(IllegalArgumentException.class, () -> column1.appendObj(new Object())); }