Setar valor inteiro em objeto [Resolvido]

Olá, senhores.

Eu tenho uma dúvida( se já exitir um tópico assim, eu peço desculpas).
Como é que faz para setar valor inteiro em um objeto?

Bom, veja bem, em java temos os ojetos wrapper, ou seja àqueles que empacotam primitivos. Você poderia descvever melhor a siituação de setar esse valor…?

seia algo assim?

[code]public class ClasseQualquer {
public static void main(String[] args) {
ClasseQualquer cq = new ClasseQualquer();
cq.setObj(2);
System.out.println(cq.getObj());
}

private Integer obj = null;

public Integer getObj() {
	return obj;
}

public void setObj(Integer obj) {
	this.obj = obj;
}

}
[/code]

Veja se você tivesse uma referência do tipo Object, e quisesse passar para o set, poderia fazer um casting, já que Integer está abaixo de Object na árvore de herança…

veja:

ClasseQualquer cq = new ClasseQualquer(); Object o = new Integer(5); cq.setObj((Integer)o);

Se não for isso, por favor, mostre o código que está executando ou explique melhor em que contexto precisa setar seu valor inteiro em um objeto, ok?

Espero ter ajudado.

eu preciso setar um inteiro vindo do banco de dados.

    public static Livro popularInfoLivro(ResultSet rs) throws SQLException {
        Livro li = new Livro();

        li.setISBN(rs.getLong("ISBN"));
        li.setTitulo(rs.getString("TITULO"));
  
        //seta objeto
        Object au = new Integer(5);
        Object cat = new Integer(5);
        Object ed = new Integer(5);

        au=rs.getInt("autor_id");
        li.setAutor((Autor) au);

        cat = rs.getInt("cat_id");
        li.setCategoria((Categoria) cat);

        ed=rs.getInt("ED_ID");
        li.setEditora((Editora) ed);

converti para objeto (ou pelo menos acho que fiz)

erro: Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.Integer cannot be cast to Entidade.Autor

Porque tu quer converter um Integer em um Object ?
O seu erro está aqui:

au=rs.getInt("autor_id"); li.setAutor((Autor) au);

o ‘au’ é um Objeto do tipo Integer, tu está dando um getInt e tentando converter um inteiro em um objeto Autor.
Tenha cuidado, pense com calma e codifique.

Abraços.

seria assim?

li.setAutor((Autor) rs.getObject("AUTOR_ID")); li.setCategoria((Categoria) rs.getObject("CAT_ID")); li.setEditora((Editora) rs.getObject("ED_ID"));

[quote=dfarias]seria assim?

li.setAutor((Autor) rs.getObject("AUTOR_ID")); li.setCategoria((Categoria) rs.getObject("CAT_ID")); li.setEditora((Editora) rs.getObject("ED_ID"));[/quote]

Não colega. Você precisa conhecer o tipo da coluna da tabela no banco de dados, executar o get de acordo com o tipo dela (inteiro, string e etc) e setar em um objeto seu. É simplesmente criar um objeto que quer e ir setando os valores.

Dá uma lida sobre JDBC e Encapsulamento ok?
Abraços.

o nome das colunas estão corretos.

No caso, autor_id, cat_id, ed_id são todos integer.

Eu tenho a entidade livro, que possui tres objetos: editora, autor, categoria (que são entidades, e possuem alguns metodos sets e gets).

Pela logica deveria ser assim pra funcionar.

[code]public static Livro popularInfoLivro(ResultSet rs) throws SQLException {

Livro li = new Livro();

li.setAutor().setId(rs.getInt("AUTOR_ID"));
return li;

}[/code]

eu recuperei os valores do banco e passei para cada entidadade, depois eu passei por paramentro as entidades como objeto e funcionou.

[code] public static Livro popularInfoLivro(ResultSet rs) throws SQLException {
Livro li = new Livro();
Autor au = new Autor();
Categoria cat = new Categoria ();
Editora edi = new Editora();

    li.setISBN(rs.getLong("ISBN"));
    li.setTitulo(rs.getString("TITULO"));

    au.setId(rs.getInt("AUTOR_ID"));
    cat.setId(rs.getInt("CAT_ID"));
    edi.setId(rs.getInt("ED_ID"));


   li.setAutor(au);
   li.setCategoria(cat);
   li.setEditora(edi);


    li.setEdicao(rs.getString("EDICAO"));
    li.setQuantidade(rs.getInt("QUANT"));
    li.setPreco(rs.getFloat("PRECO"));


    return li;
}[/code]

Obrigado

Está confundindo tudo. Se são inteiros, teria algo como:

objeto.getAutor().setId(rs.getInt("coluna"));

E tu precisa ter certeza que o getAutor() não vai te retornar nulo, senão já gera exceção.
Te recomendo a leitura de uma apostila da Caelum, a FJ-11 ok?

Edit: o que faz acima é basicamente a ideia. Usou OO e encapsulamento com os setters e getters.

Abraços.