Porque não consigo usar o metodo isIsAdmin para atribuir valor a variavel isAdmin2 e como irei fazer isso?

Classe main`package tde.poo;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

private static List<Usuario> usuarios = new ArrayList<>();
private static List<Curso> cursos = new ArrayList<>();
private static List<Disciplina> disciplinas = new ArrayList<>();
private static List<Sala> salas = new ArrayList<>();
public static int telalogin;
public static boolean isAdmin2;   

    public static void main(String[] args) {
        
        
   /* Usuario admin = new Usuario(1, "admin@example.com", "Admin", "admin", "admin123");
    Usuario usuario = new Usuario(2, "usuario@example.com", "Usuário", "usuario", "usuario123");
    usuarios.add(admin);
    usuarios.add(usuario);

    Curso cienciaDaComputacao = new Curso(1, "Ciência da Computação", "Curso de graduação em Ciência da Computação");
    Curso sistemasDeInformacao = new Curso(2, "Sistemas de Informação", "Curso de graduação em Sistemas de Informação");
    cursos.add(cienciaDaComputacao);
    cursos.add(sistemasDeInformacao);

    Sala sala1 = new Sala(1, 101, 1);
    Sala sala2 = new Sala(2, 201, 2);
    salas.add(sala1);
    salas.add(sala2);

    Disciplina poo = new Disciplina(1, "Programação Orientada a Objetos", "Disciplina de programação orientada a objetos");
   */
      
    usuarios.add(new Usuario( "leandro@hotmail.com", "leao", "leao", true));
    usuarios.add(new Usuario( "joao@gmail.com", "baby15", "leaouser",false));
    
    Scanner scanner = new Scanner(System.in);
    
     System.out.println("Bem-vindo ao sistema!\nPara fazer login digite 1\n");
     switch(telalogin){
         case 1:
             fazerLogin();
             isAdmin2=usuario.isIsAdmin();
             if (isAdmin2=true){
      System.out.println("Usuario logado como admin");
      
             }else
        System.out.println("Usuario logado como usuario comum");
         case 2:
             //vizualizar
     }
    
        
    } 
    private static void fazerLogin() {
    
    
    Scanner scanner = new Scanner(System.in);
    Usuario usuarioLogado = null;
    while (usuarioLogado == null) {
        System.out.print("Email: ");
        String email = scanner.nextLine();

        System.out.print("Senha: ");
        String senha = scanner.nextLine();

        for (Usuario usuario : usuarios) {
            if (usuario.autenticarUsuario(email, senha)) {
                usuarioLogado = usuario;
                break;
            }
        }

        if (usuarioLogado == null) {
            System.out.println("Email ou senha incorretos. Tente novamente.");
        }
    }
}

}
Classe usuario`
package tde.poo;

public class Usuario {

private static String email;
private static String nome;
private static String senha;
public boolean isAdmin;

public Usuario(String email,String senha,String nome, boolean isAdmin) {
    this.email = email;
    this.nome = nome;
    this.senha = senha;
}
public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}
public boolean autenticarUsuario(String email, String senha) {
    return this.email.equals(email) && this.senha.equals(senha);
}

public boolean isIsAdmin() {
    return isAdmin;
}

public void setIsAdmin(boolean isAdmin) {
    this.isAdmin = isAdmin;
}



}

``

Pra que precisa disso? Essa variável isAdmin2 pode ser eliminada, bastaria fazer:

if (usuario.isIsAdmin()) {
   // etc...

Sim, note que valores booleanos não precisam ser comparados com true ou false.

Outro detalhe é que isIsAdmin não é um nome bom. A variável de instância poderia ser admin e o método isAdmin.


Obs: se mesmo assim vc quisesse comparar com true, o correto é usar o operador == e não =.

Fiz as alteraçoes agora ficou assim if (usuario.isIsAdmin()){ System.out.println("Usuario logado como admin");
mas ainda está dando esse problema
cannot find symbol
symbol: variable usuario

Sim, não tem nenhuma variável usuario naquele código.

Você pode me dizer qual a melhor forma de fazer aquela verificação?
na variavel do usuario logado?

Esse trecho está comentado, e em nenhum outro lugar do código vc criou a variável usuario.

O erro é esse, vc precisa criar essa variável antes de tentar usá-la.

Obrigado consegui resolver :grinning: :star_struck:

Outra coisa, por que esses campos são estáticos? Não faz sentido, tira esse static daí.

Para entender melhor a diferença entre usar ou não static, sugiro ler este tutorial.