Existe a possibilidade de eu possuir uma tabela com N colunas, mesmo assim tenho que fazer essa explicitação de Index ou Label pra atribuir a um objeto Java? Não consigo realizar um cast? No caso do exemplo abaixo opteu pela Label para facilitar a minha leitura, acredito que nem sempre seja o mais viável...
public List<Produto> listar() throws SQLException {
        List<Produto> produtos = new ArrayList<>();
        String sql = "SELECT * FROM PRODUTO";
        try (PreparedStatement pstm = connection.prepareStatement(sql)) {
            pstm.execute();
            try (ResultSet rs = pstm.getResultSet()) {
                while (rs.next()) {
                    Produto produto = new Produto(rs.getInt("ID"), rs.getString("NOME"), rs.getString("DESCRICAO"));
                    produtos.add(produto);
                }
            }
        }
        return produtos;
    } 
            