Instanceof

5 respostas
tabocu

Oi gente,

public void addComponente(Componente componente){
		if(componentes.size() == 4);
		else if(componentes.size() == 0) componentes.add(componente);
		else{
			for(int x = 0; x < componentes.size(); x++){
				if(componentes.get(x) instanceof componente)
			}
		}
	}

Componente é uma interface e existem somente 4 classes quem implementam ela
essa função não deve permitir que seja inserido classe repetida na lista componentes.

Pensei no instance of mas não to conseguindo usar.

Alguem pode me dar uma ideia?

5 Respostas

rsakurai

Passa a interface para o instanceof

if(componentes.get(x) instanceof Componente)
tabocu

Não resolve, quero verificar se component é do mesmo tipo de componentes.get(x)

rfgallon

É com instanceof vai retorar sempre true, uma alternativa seria você incluir um método na interface e implementá-lo em cada classe, para identificar de qual subtipo ela é.
De forma rápida foi a solução que imaginei.

rsakurai
if(componentes.get(x).getClass().equals(componente.getClass()))
rfgallon

Opa verdade, a solução do rsakurai, deve funcionar, elementar rsss

Criado 31 de março de 2011
Ultima resposta 31 de mar. de 2011
Respostas 5
Participantes 3