Acessando metodo Java

08/01/2016

1

public class Cadastros{
 Users user = new Users ;
 void refreshCadastros(){
  ....;
  refreshCadastros(filtro);
 }
 private void refreshCadastros(String f){
  ...;
 }

}

public class Users{

}



Gostaria de saber como eu acessaria o methodo refreshCadastro da classe Cadastros, a partir da classe Users, sendo que a classe user esta instanciada na classe Cadastros.
Responder

Post mais votado

12/01/2016

Voce deve usa herança , usa a palavra extends..

public class Users extends cadastros{
 
}
Responder

Mais Posts

12/01/2016

Daniel Volpato

Você deveria ter um atributo da classe Cadastros na tua classe Users:

public class Users{
Cadastros cadastros; // atributo publico, ou privado com get/set;
//demais códigos omitidos
}

Mas me parece que você tenha que voltar um passo na construção dessas classes, deve ter alguma coisa que não está certa. Qual o contexto dessas classes - o problema que te levou a criar essas classes?
Responder

12/01/2016

Marcos Paulo

Exatamente Edson.

Confere esse link Samuel.

[url]https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/[/url]
Responder

12/01/2016

Samuel Gamito

a classe Cadastros contem um uma lista com todos cadastros, ja a classe users tem um formulario para cadastrar os usuario, sempre q eu vou cadastrar um usuario a classe Cadastros cria uma nova instancia da classe users.
Na classe users eu tenho um metodo que chama o back-end e adiciona os dados ao bd, o meu problema era atualizar a lista de usuarios da classe Cadastro apos um novo usuario ser criado.

Mas resolvi passando o objeto da lista p a classe usuario, ai eu criei as funções de refresh dentro do classe users.

Não sei se ficou confuso, haha...
Se quiser posso tentar explicar melhor...
Responder

12/01/2016

Edson Venancio

Na realidad pelo seu post estava a entender, que vc estava aprendendo herança... Dai sugeri-o extends..
Responder

12/01/2016

Marcos Paulo

Fiquei um pouco sem entender.
Responder

12/01/2016

Daniel Volpato

Entendi +/- o que voce quer fazer:
No seu caso, poderia fazer o seguinte:
Criar um controller(Controlador) para a tela de cadastros de usuários, onde conterá os métodos com as ações da tela, e sua lista de usuários:

seria algo assim:

public class CadastroUsuario { // Classse controladora do cadastro de usuarios
private List<Users> usuarios; / lista de usuarios


public CadastroUsuario (){
usuarios = new ...// instanciar sua lista de usuarios
}

public void cadastrar(User usuario){
// Invoca a Classe.metodo pra gravar o usuario
refreshCadastros();
}

public void void refreshCadastros(){
// Invoca a Classe.metodo para buscar os usuarios salvos e popular a lista de usuarios

}

//outros metodos: alterar, excluir, ... omitidos
}
Responder

13/01/2016

Ronaldo Filho

Grande Bom dia.

É bom observar o acoplamento do código. Métodos criados da forma como você fez podem apresentar alto acoplamento dificultando manutenções futuras, no caso o que você pode fazer é, no retorno da função que salva o cadastro, o método deve retornar o registro cadastrado, já no front o registro deve ser tratado e adicionado à lista, geralmente o que faz-se em desenvolvimento MVC é, classes onde são realizadas operações de manutenção de informações em banco de dados apenas devem retornar valores e não atualizar listas ou outros valores de outras classes.

O que recomendaria é que ao invés de atualizar a lista após inserção do registro novo, você buscaria novamente os dados no banco, eliminando os dados antigos da listagem anterior e adicionando os novos. Têm-se também que lembrar, que operações desse tipo geralmente geram inconsistências de dados, o motivo é que ao adicionar um objeto novo em uma listagem antiga, pode me mostrar organização de dados errados (ordem, designação de grandeza da informação, entre outros), e no caso da listagem ser uma lista de objetos complexos isso pode "bagunçar" a cabeça do usuário ou interferir na lógica de desenvolvimento.

No caso uma das coisas que me atrapalhou muito no desenvolvimento de aplicações MVC, foi justamente a não observância esses detalhes, sempre acabava em erro ou em informação corrompida. No caso de trabalhos com objetos que sejam "linkados", e precisem ser adicionados à lista e depois serem usados em um outro objeto que precise ser cadastrado também no banco, no início pode ser bom, pois você tem a facilidade de encontrar o registro facilmente, mas posteriormente isso pode ser prejudicial, tendo em vista a situação de orientação por ID's ou chaves de controle que não são disponibilizadas correta em listas alimentadas de forma errada.

Grande desculpa se pareci um pouco rude ou grosso, mas procurei ser o mais direto possível, se não ia acabar me estendendo demais.
Fica a dica a cima, procura por reflection e abstração de métodos, essa foi uma parte bastante interessante quando estava aprendendo sobre redundância e herança.
Responder