"variable name" cannot be resolved to a variable

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 ?

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);

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!!

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();
1 curtida