TableCell and TableRow are parameterized with the same type as the containing Table, but TableCell.getTableRow returns a raw TableRow. the corresponding method on TreeTableCell returns a correctly parameterized TreeTableRow. With only the raw TableRow, clients have to suppress the unchecked cast warning, even though it is clear what the type parameter should be.