Acessando metodo Java
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.
Samuel Gamito
Curtidas 0
Melhor post
Edson Venancio
12/01/2016
Voce deve usa herança , usa a palavra extends..
public class Users extends cadastros{ }
GOSTEI 1
Mais Respostas
Daniel Volpato
08/01/2016
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?
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?
GOSTEI 0
Marcos Paulo
08/01/2016
Exatamente Edson.
Confere esse link Samuel.
[url]https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/[/url]
Confere esse link Samuel.
[url]https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/[/url]
GOSTEI 0
Samuel Gamito
08/01/2016
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...
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...
GOSTEI 0
Edson Venancio
08/01/2016
Na realidad pelo seu post estava a entender, que vc estava aprendendo herança... Dai sugeri-o extends..
GOSTEI 0
Marcos Paulo
08/01/2016
Fiquei um pouco sem entender.
GOSTEI 0
Daniel Volpato
08/01/2016
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
}
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
}
GOSTEI 0
Ronaldo Filho
08/01/2016
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.
É 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.
GOSTEI 0