1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Um varargs utilizando Object aceita quais tipos de dados???

Boa noite.

Sou novo no forúm e em programação java. A minha dúvida é: Tem alguma maneira de criar um método e no parâmetro colocar um tipo de varargs que aceite qualquer tipo de dado?

Eu vi um cara fazendo isso criando um método e passando como parâmetro um varags de Object mas não deu certo comigo.

Segue abaixo o código, e muito obrigado pela atenção.

//Aqui é o método que preciso
public long executePreparedUpdateAndReturnGeneratedKeys(Connection conn, 
                                                            String query,
                                                            Object... params) 
                                                            throws SQLException {

        PreparedStatement pstmt = null;
        ResultSet rset = null;
        long result = 0l;

        try{
        pstmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);

        int i = 0;
        for (Object param : params) {

            pstmt.setObject(++i, param);
        }
        pstmt.executeUpdate();

        rset = pstmt.getGeneratedKeys();

        if(rset.next()){result = rset.getLong(1);}

        } finally{
            release(pstmt);
            release(rset);
        }
        return result;
        }
//Aqui é outra classe onde faço a chamada do método
daoResource.executePreparedUpdateAndReturnGeneratedKeys(conn, "insert into contratante(nm_contratante, cpf_contratante, rg_contratante,id_endereco) values (?, ?, ?, ?)"
, contratante.getNm_contratante(), contratante.getCpf(), contratante.getRg(), id_endereco);

Obs: o problema é que o contratante.getNm_contratante(), contratante.getCpf(),contratante.getRg() são Strings e o id_endereço um long e como eu disse com o cara que vi deu certo. O erro que dá é esse:

The method executePreparedUpdateAndReturnGeneratedKeys(Connection, String, Object...) in the type DaoResource is not applicable for the arguments(Connection, String, String, String, String, long)

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags orientação-a-objetos dao string ou faça a sua própria pergunta.