Olá pessoal sou novo no fórum e também sou novo no mundo das tecnologias JAVA. Além de suprir minhas dúvidas espero poder ajudar.
Como primeira dúvida gostaria que me ajudassem com o tipo constante Final.
Compreendo bem a teoria desta constante, se criar uma constante Final o valor desta não poderá ser alterada.
Minha dúvida é a seguinte, tenho duas classes uma principal e uma secundária contendo funções. Toda a vez que utilizo alguma função da classe secundária passo algumas variáveis, para que estas possam ser alteradas pela função, até ai tudo bem, porem se a função secundária contiver uma chamada de outra função dentro dela o java obriga que os parâmetros sejam do tipo Final. Bom ninguém deve estar entendendo nada, não estou conseguindo explicar direito porem vou colocar a baixo um exemplo e vocês vão entender.
public class Principal
{
public Secundaria secundaria;
public JButton button;
public Variavel variavel
public Principal()
{
secundaria = new Secundaria();
button = new JButton();
}
secundaria.alteraButton(button, variavel);
}
public class Secundaria
{
public alteraButotn(JButton button, Variavel variavel)
{
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//aqui eu atero alguma propriedade da variavel
}
});
}
}
O código acima é só um exemplo do meu problema, e não é um código compilável. Bom o que acontece é que não consigo alterar o valor da variável porque o java insiste que o parâmetro “Variavel variavel” seja “Final Variavel variavel”, alguém tem alguma solução alguma tática para que isso não ocorra, como disse sou novo no java e não sei quase nada.
A parte dos parâmetros da função secundária obrigatoriamente ficaria:
[“Final Variavel variavel”]
Com isso não consigo alterar o valor da variavel.
public class Secundaria
{
public alteraButotn(JButton button, Final Variavel variavel)
{
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//aqui eu atero alguma propriedade da variavel
}
});
}
}
Se quiserem que poste o meu código para verem o real erro eu posto, porem é quase a mesma situação.
Agradeço desde já.
Abrigado.