[RESOLVIDO] Porque do erro de compilação?

2 respostas
CrOnNoS

Está aparecendo um erro no código que estou fazendo no momento que não estou sabendo identificar o porque oO

método inteiro:
protected void aihJMenuItem_actionPerformed(ActionEvent e) {
		JFileChooser selecionarPasta = new JFileChooser();
		selecionarPasta.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

		int resultado = selecionarPasta.showOpenDialog(this);

		if (!(resultado == JFileChooser.CANCEL_OPTION)) {

			if (selecionarPasta.getSelectedFile().isDirectory())
				String aihPath = selecionarPasta.getSelectedFile()
						.getAbsolutePath();
		} // if
	} // aihJMenuItem_actionPerformed
Trecho com erro de compilação:
if (selecionarPasta.getSelectedFile().isDirectory())
				String aihPath = selecionarPasta.getSelectedFile()
						.getAbsolutePath();
E assim, com colchetes o erro some:
if (selecionarPasta.getSelectedFile().isDirectory()) {
				String aihPath = selecionarPasta.getSelectedFile()
						.getAbsolutePath();
			} // if

Sabem me dizer o porque exatamente do erro quando não tem colchetes ?

PS: erros -
Description Type
aihPath cannot be resolved Java Problem
String cannot be resolved Java Problem
Syntax error, insert ";" to complete Statement Java Problem
Syntax error, insert "AssignmentOperator Expression" to complete Assignment Java Problem

2 Respostas

airtonarantes

A instrução if nao necessita de colchetes quando tivermos apenas um comando. Mas esse é o seu caso, entao eu acredito que o comando deve ser apenas de uma linha, como você entrou com um o compilador pensou que você ja tinha entrado com a instrução e que o “.getAbsolutePath()” já fosse uma outra instrução.

Faça isso

if (selecionarPasta.getSelectedFile().isDirectory())  
             String aihPath = selecionarPasta.getSelectedFile().getAbsolutePath();

e veja se você recebe o mesmo erro.

CrOnNoS

esse “enter” era o format do eclipse. Mas vi onde tava o problema =/
Declarar uma variável em um if de 1 linha realmente não faz sentido já que o escopo da variável vai quebrar logo após o fim do if (não lembrava que o if também limitava escopo).

Criado 23 de agosto de 2009
Ultima resposta 23 de ago. de 2009
Respostas 2
Participantes 2