"variable name" cannot be resolved to a variable

3 respostas
java
A

Boa noite pessoal, estou realizando uns exercícios em java, e esse especificamente é um código para pesquisar um lugar no google maps a partir de uma classe e um objeto, segue o código para o melhor entendimento:

import java.awt.Desktop;

import java.io.IOException;

import java.net.URI;

import java.net.URISyntaxException;

public class Lugar {

public String nome;
public Double avaliacao;

public Lugar(String praca) {
    this.nome = praca;
}


public void mostrarNoMapa(String nome) throws IOException, URISyntaxException {
    Desktop.getDesktop().browse(new URI("https://www.google.com/maps/search/?api=1&query="+nome));
}

}

Essa classe foi criada, e o código da main segue abaixo:

import java.io.IOException;
import java.net.URISyntaxException;

public class App {

public static void main(String[] args) throws IOException, URISyntaxException {

    Lugar mercado = new Lugar("Praça");
    mercado.mostrarNoMapa(nome);
    

}





}

E na parte “mercado.mostrarNoMapa(nome);” ele me dá esse erro, nome cannot be resolved to a variable, e eu não sei o que fazer, porque a variável criada é pública, mas não pôde ser identificada nessa função.

Podem me ajudar ?

3 Respostas

L

A variável nome não foi criada na classe App. Se a ideia eh usar a variavel da classe Lugar, tente assim:

mercado.mostrarNoMapa(mercado.nome);
A

Muito obrigado, consegui resolver e entender a lógica por trás!!
Linguagens como Java são muito difíceis por serem orientadas a objeto, mas vou evoluindo, valeuu!!

S

Não faz sentido chamar o método de um objeto passando como parâmetro um atributo desse mesmo objeto.

Se a ideia é mostrar o própio lugar, então não faz sentido ter o parâmetro nome no método mostrarNoMapa, deixe ele simplesmente assim:

public void mostrarNoMapa() throws IOException, URISyntaxException {
    Desktop.getDesktop().browse(new URI("https://www.google.com/maps/search/?api=1&query=" + nome));
}

No seu main faça:

Lugar mercado = new Lugar("Praça");
mercado.mostrarNoMapa();
Criado 22 de agosto de 2024
Ultima resposta 23 de ago. de 2024
Respostas 3
Participantes 3