[resolvido] Class names (...) only accepted if annotation processing is explicity requested

9 respostas
saim

Bom dia, moçada. Estou começando a aprender sobre classes e objetos, seguindo a FJ11 do caelum. Lá ela usa uns exemplos de contas de banco. Quando cheguei em transferências, caí nesse estranho erro do título.
Sem resumir, o erro é esse aqui:

Class names, 'transferencia', are only accepted if annotation processing is explicity requested

O único momento em que 'transferencia' aparece é no título do meu arquivo .java.
Alguém sabe o que isso quer dizer e o que eu fiz errado?

O arquivo contém o seguinte:
class conta{
	double saldo;
	int numero;
	String dono;
	double limite;
	
	boolean saca(double quantidade){
		if (this.saldo<quantidade){
			return false;
			}
			else{
				this.saldo-=quantidade;
				return true;
				}
	}
	
	void deposita(double quantidade){
		this.saldo+=quantidade;
		}
		
	/*boolean transfere(conta destino, double quantidade){
		if this.saca(quantidade){
			destino.deposita(quantidade);
			return true;
			}
			else{
				return false;
				}
		}*/
	
	void transfere(conta destino, double quantidade){
		this.saldo=saldo-quantidade;
		destino.saldo+=quantidade;
		}
	
	}
	
class testeTransfere{
	public static void main(String[] args){
		conta minhaConta;
		minhaConta = new conta();
		minhaConta.dono="saim";
		minhaConta.saldo=1000;
		
		conta novaConta;
		novaConta=new conta();
		novaConta.saldo=1000;
			
		/*if minhaConta.transfere(novaConta, 200){
			System.out.println(minhaConta.saldo);
			System.out.println(novaConta.saldo);
			}
			else{
			System.out.println("saldo insuficiente");
			}*/
			
		minhaConta.transfere(novaConta, 200);
		System.out.println(minhaConta.saldo);
		System.out.println(novaConta.saldo);
			
	}

9 Respostas

drsmachado

Mas em que linha o erro é acusado?
Esta mensagem é do stackTrace?

saim

drsmachado:
Mas em que linha o erro é acusado?
Linha nenhuma, o erro era só isso que eu copiei. Referia-se ao nome do arquivo .java. Só que agora eu reiniciei a máquina e o erro sumiu, devia ser alguma coisa na memória. Pra mim, vai ser um mistério pelo menos até acontecer de novo.
Agora, está funcionando.

drsmachado:
Esta mensagem é do stackTrace?
O que é stackTrace?

aix

Este erro da quando você vai compilar pelo Shell ou pelo DOS e não coloca a extensão .java no final, ex: javac Classe.java, outra coisa que esta errado é o nome de suas classes você usou camel case na nomeclatura das classes, nomes de classe devem ser com a primeira letra em maiúsculo.

saim

Ah, até o momento eu não sabia que existem outras formas de compilar a não ser pelo DOS (achava que os programas profissionais davam um jeito de abrir o DOS e compilavam de lá). Sim, era pelo DOS.
Mas agora, a classe está aceitando “conta”, numa boa. De fato, o exemplo da apostila usa “Conta”, mas agora está rodando redondo. O que é “camel case”? Significa “todas letras em minúscula”?

Realmente digitar só “javac transferencia” faz o erro acontecer de novo. Matou a charada!

G
aix

tem umas regrinhas para nomeclatura de Clasess.class, nomesDeMetodos(); eDeVariaveis, todas as respostas ja tem neste forum de uma pesquisa e estude.

saim

@GabeDevelop: Não entendi. Eu fiz alguma pergunta que já estava respondida?

@aix:Ah, achei as convenções. Bom, então posso entender que elas são só convenções mesmo, né? Não são exatamente regras. E CamelCase está na wikipédia mesmo, faltou uma pesquisa da minha parte. Obrigado.

G

saim:
@GabeDevelop: Não entendi. Eu fiz alguma pergunta que já estava respondida?

@aix:Ah, achei as convenções. Bom, então posso entender que elas são só convenções mesmo, né? Não são exatamente regras. E CamelCase está na wikipédia mesmo, faltou uma pesquisa da minha parte. Obrigado.

So quis dar enfase no que nosso amigo aix disse

saim

Beleza. Valeu, moçada, mais uma vez, obrigado!

Criado 10 de julho de 2011
Ultima resposta 11 de jul. de 2011
Respostas 9
Participantes 4