[Resolvido - Duvida] Incompatibilidade de resultado

2 respostas
C
package projeto01;

import java.util.*;

public class Comunidade {

	private String nome;
	private String descricao;
	private String proprietario;
	// private ArrayList<Usuario> user = new ArrayList<Usuario>();
	private LinkedList<Usuario> myUsers = new LinkedList<Usuario>();

	public Comunidade(Usuario usuario, String nome, String descricao) {
		this.nome = nome;
		this.descricao = descricao;
		this.proprietario = usuario.getNome();
		myUsers.add(usuario);

	}

	public boolean entrar(Usuario usuario) {

		Iterator iterator = myUsers.iterator();
		while (iterator.hasNext()) {
			Usuario user = (Usuario) iterator.next();
			if (user.getNome().equals(usuario.getNome()))
				return false;
			else {
				myUsers.add(usuario);
				return true;
			}
		}
		return false;
	}

	public String listarUsuarios() {
		String retorno = "";
		Iterator iterator = myUsers.iterator();
		while (iterator.hasNext()) {
			Usuario user = (Usuario) iterator.next();
			retorno = retorno + " " + user.getNome();
		}
		return retorno;

	}

	
	public String getNome() {
		return nome;
	}
}
//Gabriel 31088041 && leonard 31056830
package projeto01;

import java.util.*;

public class Usuario {

	private String nome;
	private String endereco;
	private long telefone;
	private String login;
	private String senha;
	private String eMail;
	private long CPF;
	//private ArrayList<Comunidade> comunidades = new ArrayList<Comunidade>();
	private LinkedList<Comunidade> myCommunity = new LinkedList<Comunidade>();

	// Construtor
 	public Usuario(String nomeInicial, long CPFInicial) {
		nome = nomeInicial;
		CPF = CPFInicial;
		senha = String.valueOf(CPF);

	}// fimConstrutor

	// getters/setters
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setTelefone(long telefone) {
		this.telefone = telefone;
	}

	public long getTelefone() {
		return telefone;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getLogin() {
		return login;
	}

	public void seteMail(String eMail) {
		this.eMail = eMail;
	}

	public String getEmail() {
		return eMail;
	}// fim/getters/setters

	// metodo
	public boolean alterarSenha(String senhaAntiga, String senhaNova) {
		if (senhaAntiga.equals(senha)) {
			senha = senhaNova;
			return true;
		}
		return false;

	}

	public boolean adicionarComunidade(Comunidade comunidade) {
		Iterator iterator = myCommunity.iterator();
		while (iterator.hasNext()){
			Comunidade comun = (Comunidade) iterator.next();
			if (comun.getNome().equals(comunidade.getNome())){
				return false;	
			}
			else {
				myCommunity.add(comunidade);
				return true;
			}
			}
		return false;
	}

	public String listarMinhasComunidades() {
		String retorno = "";
		Iterator iterator = myCommunity.iterator();
		while (iterator.hasNext()){
			Comunidade comun = (Comunidade) iterator.next();
			retorno = retorno + " " + comun.getNome();
		}
		return retorno;

	}
	//public String toString(){
		//return String.format("", arg1);

	public String getNome() {
		return nome;
	}
	
}
package projeto01;

public class Main {
public static void main(String[] args) {
	String a= "nomequalquer";
	String b = "descript";
	Usuario x = new Usuario ("leonard", 12345L);
	Usuario e = new Usuario ("gabriel", 12345L);
	Usuario k = new Usuario ("bozo", 12345L);
	Usuario l = new Usuario ("McGuiver", 12345L);
	Comunidade y = new Comunidade (x, a, b);
		
	x.adicionarComunidade(y);
	x.listarMinhasComunidades();
	y.entrar(x);
	y.entrar(l);
	y.entrar(k);
	y.entrar(e);
	y.listarUsuarios();
	
System.out.println(x.listarMinhasComunidades());
System.out.println(y.listarUsuarios());
}
}

Erro:
Nao exibe as comunidades de um usuario.

Caso precisarem da UML :
[img]http://www.mh2img.net/showpic-73949/nuy.png[/img]
Link da img caso nao estiver aparecendo : http://www.mh2img.net/showpic-73949/nuy.png

Espero por uma ajuda, o codigo é um pouco longo, obrigado desde já quem tentar ajudar.

2 Respostas

romarcio

Você em momento algum adicionou alguma coisa em myCommunity, então não poderá listar nada.

Precisa adicionar o que quer nesse myCommunity.

private LinkedList<Comunidade> myCommunity = new LinkedList<Comunidade>();

No caso, vc criou esse método para tal ação:

public boolean adicionarComunidade(Comunidade comunidade) {
		Iterator iterator = myCommunity.iterator();
		while (iterator.hasNext()){
			Comunidade comun = (Comunidade) iterator.next();
			if (comun.getNome().equals(comunidade.getNome())){
				return false;
			}
			else {
				myCommunity.add(comunidade);
				return true;
			}
		}
		return false;
	}

Mas faz um while em myCommunity sendo que ele está null, então nem vai entrar no while, vai cair direto no return false.

Tem repensar na sua lógica para adicionar em myCommunity.

C

romarcio:
Você em momento algum adicionou alguma coisa em myCommunity, então não poderá listar nada.

Precisa adicionar o que quer nesse myCommunity.

private LinkedList<Comunidade> myCommunity = new LinkedList<Comunidade>();

No caso, vc criou esse método para tal ação:

public boolean adicionarComunidade(Comunidade comunidade) {
		Iterator iterator = myCommunity.iterator();
		while (iterator.hasNext()){
			Comunidade comun = (Comunidade) iterator.next();
			if (comun.getNome().equals(comunidade.getNome())){
				return false;
			}
			else {
				myCommunity.add(comunidade);
				return true;
			}
		}
		return false;
	}

Mas faz um while em myCommunity sendo que ele está null, então nem vai entrar no while, vai cair direto no return false.

Tem repensar na sua lógica para adicionar em myCommunity.


Desculpe a demora pela resposta, a vida ta meio corrida =).

Funcionou, vou tomar mais cuidado em desenvolver minha logica nas proximas vezes, muito Obrigado.

Criado 18 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 2
Participantes 2