Problema com Generics, está retornando null

2 respostas
Pilantra

Olá pessoal.

Estou com um problema de OO mesmo eu acho. Tenho as seguintes classes:

public class Interface extends PopupPanel {

	private String nome;
	
	public Interface() {
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}
	
}
public class CadastroCliente extends Interface {

	public CadastroCliente() {
		setNome("TESTE");
		
		initComponents();
	}
	
	public void initComponents() {
		Label lbNome = new Label("NOME:");
		TextBox txtNome = new TextBox();
		
		HorizontalPanel horizontalPanel = new HorizontalPanel();
		horizontalPanel.add(lbNome);
		horizontalPanel.add(txtNome);
		
		setWidget(horizontalPanel);
	}

	
}
public class Cadastrar<T extends Interface> extends Widget {
	
	private T bean;
	
	public Cadastrar() {
		System.out.println(bean);
	}

}

E uma classe Main que chama a classe Cadastrar assim:

new Cadastrar<CadastroCliente>();

O problema, é que o ali no generics, CadastroCliente, está indo como null lá na classe Cadastrar e está dando nullpointer. O que eu fiz de errado?

Grato.

2 Respostas

ViniGodoy

Genérics não é passagem de parâmetro.

O seu Bean continua não sendo inicializado. Quando você diz:
Cadastrar<Cliente>

Você só disse que T é do tipo Cliente, nada mais.

O correto seria sua classe ser assim:

public class Cadastrar<T extends Interface> extends Widget {  
    private T bean;  

    public Cadastrar(T bean) {  
       this.bean = bean;
       System.out.println(bean);  
   }  
}

E aí vc faz:

new Cadastrar<CadastroCliente>(umCliente);
Pilantra

Valeu ViniGodoy. Ainda estou estudando Generics hehe. Agora deu certo.

Abraços.

Criado 4 de novembro de 2008
Ultima resposta 4 de nov. de 2008
Respostas 2
Participantes 2