Bom dia galera, beleza?
Quero criar uma classe “CadastrarFuncionario” que vai possuir um HashMap onde fica armazenado todos os Funcionários .A Key é o login, o Value é o objeto Funcionario.
Gostaria de poder acessar essa classe CadastrarFuncionario tanto do main, quanto do objeto Funcionario, pois assim sempre que eu cadastrar o funcionário pela classe Funcionario, eu vou adicionar no HashMap. Sempre que eu modificar um funcionário, modifico o HashMap. Ou seja, eu modifico o mesmo HashMap no Funcionario, e consulto o mesmo HashMap através do meu main.
É possível criar isso?
Por enquanto, meu código está assim:
public class CadastroFuncionario { // Classe que armazenará o HashMap de funcionários
private HashMap<String, Funcionario> funcionarios;
public CadastroFuncionario() {
funcionarios = new HashMap<>();
}
public void inserirFuncionario(Funcionario f) {
funcionarios.put(f.getLogin(), f); // Eu tenho o getLogin, apesar de não mostrar abaixo na classe Funcionario
}
}
public class Funcionario {
private final String login;
private String senha;
private String nome;
public Funcionario(String login, String senha, String nome) {
this.login = login;
this.senha = senha;
this.nome = nome;
// Imagino que aqui eu chamaria a função inserirFuncionario
}
}
Além do que eu já disse, em cada SET eu mandaria dar uma atualizada no HashMap cujo KEY seja o login deste funcionário (esta função eu criaria lá no CadastrarFuncionario pedindo como parâmetro o Login e o atributo mudado, certo?)
Agradeço desde já \o. Desculpem pela explicação ruim, especifiquei o melhor que pude
OBS: Não sei se estou no caminho certo. Gostaria de conseguir fazer isso deixando, a princípio, tudo em memória mesmo. Depois que ver que deu certo, vou tentar inserir arquivo. Também pretendo expandir isso para outras classes (Produto, Cliente etc.)
@Edit 04/10/2017 12:15
Sobre os SETSs: Acabei de perceber que talvez eu nem precise passar como parâmetro o atributo mudado, apenas coloco o novo Value como o objeto Funcionario já alterado