Jump to content
Sign in to follow this  
ac88

Duvida num hashmap

Recommended Posts

ac88

Boas malta, estou com um problema, eu tenho um programa que cria uma folha sem nome, faço várias coisas e depois posso guarda-la com o nome que eu quero. O problema está quando eu quero abrir uma folha existente e vou ao map ver se o nome da folha que me deram para abrir existe. No código em baixo podem ver como crio o map, como coloco lá o nome e a folha, e como faço o open.

public class GestorFolha implements Serializable{
//...
//...
  private Map<String, Folha> _folhas = new HashMap<String, Folha>;
  //...
  public Map<String, Folha> folhas(){return this._folhas;}
  //..
  public void guardarComo (String name) throws IOException{
		//...
		this.folhas().put(name, this.folhaActual);
  }
  //...
  public boolean folhaExiste(String nome){return this.folhas().contaisKey(nome);}
  //...
}

public class Open extends Command<GestorFolha>{
//...
//...
  public final void execute() throws DialogException, IOException{
		//...
		if (receiver.folhaExiste(nome)){ //esta linha de codigo nunca da true - o problema esta aqui mas nao consigo resolver
		_receiver.abrirFolha(nome);
		//...
		//...
  }
}

outra duvida que eu tenho

cena = celula[0].split(";");
linha1 = Integer.parseInt(cena[0]);
coluna = Integer.parseInt(cena[1]);

como posso comparar a linha1 e a coluna de maneira a que me dê um boolean ?

espero que me consigam ajudar.

Obrigado e cumprimentos

Edited by ac88

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu não percebi absolutamente nada do que pretendes na primeira parte ...

a segunda :

linha1 == coluna; // resulta num booleano ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
ac88

Então é assim aquele Map é para guardar o nome de todas as folhas e respectivas folhas que foram guardadas como ficheiros. Quando eu chamo a função guardarComo ela faz put e supostamente mete no Map porque eu fiz debug e ele está lá mas quando invoco o folhaexiste ele diz que a folha correspondente ao nome não está dentro do Map e devolve null. Queria saber se estou a fazer alguma coisa mal -.-

Share this post


Link to post
Share on other sites
HappyHippyHippo

bem ... eu vejo duas variáveis diferentes ...

if (receiver.folhaExiste(nome)) {
   _receiver.abrirFolha(nome);


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
ac88

isso foi um erro a escrever aqui. senão nem deixava compilar. mas ele compila só que como disse

 _receiver.folhaExiste(nome)

nunca é true logo nunca abre a folha. e não consigo perceber porquê :s

Share this post


Link to post
Share on other sites
ac88

já consegui resolver. agora tenho outro problema eu inicio uma string a null e tenho uma função que faz return da string. quando executo dá NullPointerExcpetion, como posso resolver isto ?

Share this post


Link to post
Share on other sites
Baderous

O problema não é, de certeza, de fazer return de uma string que está a null. O problema é que estás a invocar em algum lado algum método da string ou a passá-la como argumento a outro método qualquer que depois a usa e estoura.

Share this post


Link to post
Share on other sites
bioshock

Basicamente se tens uma função que possivelmente te possa retornar nulo, antes de dares o output da função deves fazer uma verificação.

private String teste(){
  String v = null;
  return v;
}
if(teste() != null){
  // output
}

Edited by bioshock

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.