Eu não entendi o que você quis dizer com o texto acima, mas de qualquer forma, para você forçar a coleta de lixo com o garbage collector basta chamar o método gc();
é pq eu tenho uma logica que que eu declaro um vetor com um contador , sempre que uso a logica preciso mudar a variavel, a quantidade do vetor, entao eu gostaria de saber se tem como logo apos eu sair da logica eu excluir essa variavel e recriar quando entrar na logica, entendeu?
quero saber se tem como tirar ela da memoria e recriar em outro lugar da memoria que seja, para que o vetor nao aponte para a antiga
Eu acho que não precisa se preocupar em deletar essa variavel da memoria , ela deve ser uma estrutura bem pequena , por outro lado ella sera destruida quando sair do metodo … Se vc predende mesmo fazer isso chame o coletor de lixo System.gc(); mas antes disto vc precisa colocar a matriz igual a null para que ela seja apagada (coletada) , mas isso não garante que o coletor de lixo vai limpar a variavel pois isso e gerenciado por ele .
Minha opnião deixe igual esta …uma hora a sua variavel sera deletada …
[code]private class ActionAdicionarExame implements ActionListener { @Override
public void actionPerformed(ActionEvent arg0) {
if (exameTextNome.getText().length() == 0) {
JOptionPane.showMessageDialog(null,
"Nome do paciente não informado", "Erro!",
JOptionPane.ERROR_MESSAGE);
return;
} else {
// Cria e Instancia um objeto do tipo EmpresaExame
EmpresaExame empresaExame = new EmpresaExame();
// Seta as informaões do objeto com os dados do formulario
empresaExame.setNome(exameTextNome.getText());
empresaExame.setEmpresa(exameTextEmpresa.getText());
empresaExame.setData(exameTextData.getText());
empresaExame.setTipo(exameComboBoxAdmissional.getSelectedItem().toString());
for(int i=0; i<=6; i++){
if(!exameAd[i].equals("")){
count++;
}
}
[b]
String[] exameAdTemp = new String[count];
for( int i=0;i<exameAdTemp.length;i++){
exameAdTemp[i] = "";[/b]
}
for(int i=0, j=0; i<=6; i++){
if(!exameAd[i].equals("")){
exameAdTemp[j] = exameAd[i];
j++;
}
}
Arrays.sort(exameAdTemp);
for(int i=0; i<count; i++){
exameText[i].setText(exameAdTemp[i]);
empresaExame.setE(i+1,exameText[i].getText());
}
for(int i=count; i<=6; i++){
exameText[i].setText(exameAd[i]);
empresaExame.setE(i+1,exameText[i].getText());
}
for(int i=0; i<=6; i++){
exameText[i].setText("");
exameAd[i] = "";
}
for(int i=0; i<count; i++){
exameAdTemp[i] = "";
}
//adiciona o objeto na base de dados e atualiza a lista de EmpresaExame
EmpresaExamePool.getInstance().add(empresaExame);
EmpresaExamePool.getInstance().sortByNome();
EmpresaExamePool.getInstance().update();
updateTabelaEmpresaExame(EmpresaExamePool.getInstance().getArrayList()); //atualiza a tabela de suprimento do formulario apartir de MatrizPool
}
}
}
[/code]
oq isso faz,
toda vez que eu acesso o botao ele cria a variavel no tamanho que o CONT determinar, entao se eu voltar pro botao e colocar um valor que seja diferente do CONT na proxima vez que for apertado da erro, se eu adicionar com a mesma quantidade funciona, por isso gostaria de deletar ela e recriar sempre que entrar.
ja achei o erro, era so eu zerar a variavel count logo na entrada que resolvia… nao vou precisar fazer nd de deletar variavel da memoria nao, vlw a ajuda de todos