Final cannot be assigned.. Mas nao tem nenhum final @@

2 respostas
G
tenho a seguinte classe
public class FacadeOpFinanceiras implements IOpFinanceira{


	@Override
	public boolean checkName() {//"checa" se o nome esta sujo ou nao
		// TODO Auto-generated method stub
		return true;
	}

	@Override
	public boolean raiseCredit(double val) {
		val=Math.abs(val);//ignorando valores negativos
		if(val/IOpFinanceira.credit<=0.3){//aumenta apenas 30% do credito atual
			IOpFinanceira.credit+=val;
			return true;
		}
		return false;
	}

	@Override
	public void setCredit(double val) {
		// TODO Auto-generated method stub
		IOpFinanceira.credit=val;
	}	
	
	@Override
	public double getCredit() {
		// TODO Auto-generated method stub
		return IOpFinanceira.credit;
	}

}

e a interface que ela implementa

public interface IOpFinanceira {

	public static double credit=2000;
	
	boolean checkName();
	double getCredit();
	boolean raiseCredit(double val);
	void setCredit(double val);
	
}

o que acontece é que o eclipse manda eu tirar o modificador Final do atributo credit; mas, como podem ver, nao tem nenhum final..

abraços

2 Respostas

E
public interface... 
     public static double credit=2000;

Ao criar uma interface, evite ao máximo incluir variáveis, apenas métodos. Isso é porque em quase todas as linguagens que têm interfaces, elas têm só métodos.

Por algum motivo obscuro, o Java aceita você declarar constantes em uma interface. (Deve ser no tempo em que o pessoal que implementou o Java estava com pressa e não quis criar uma “enum”. Alguns anos depois, no Java 5., o enum foi definitivamente criado, mas então o estrago estava feito. )

Se uma “variável” for incluída, ela será implicitamente “static final”, ou seja, ela será obrigatoriamente uma constante.

G

faz sentido… muito obrigado mesmo!

Criado 26 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 2
Participantes 2