Я изучаю Java (извините за мой плохой английский, это не мой родной язык), и когда я делаю блок «try-finally» в Eclipse (JavaSE-1.7) в каждом «попробовать», что я поставил, появляется следующее сообщение:Несколько маркеров в этой строке - ошибка синтаксиса на токене ")",; ожидаемый - ошибка синтаксиса на токене "(", {expected
Несколько маркеров на этой линии - ошибка синтаксиса, вставить «}» для завершения блока - ошибка синтаксиса, вставить «Наконец», чтобы завершить BlockStatements
Вот полный код:
package Java;
public class Arquivo3 {
private Path BdC = Paths.get("C:/xti/files/conta.txt");
private Charset utf8 = StandardCharsets.UTF_8;
public void armazenarContas(ArrayList<Conta> contas) throws IOException{
try(BufferedWriter writer = Files.newBufferedWriter(BdC, utf8)) {
for (Conta conta : contas) {
writer.write(conta.getCliente() + ";" + conta.getSaldo() + "\n");
}
}
}
public ArrayList<Conta> recuperarContas() throws IOException{
ArrayList<Conta> contas = new ArrayList<Conta>();
try (BufferedReader reader = Files.newBufferedReader(BdC, utf8)){
String line = null;
while((line = reader.readLine()) != null) {
String[] t = line.split(";");
Conta conta = new Conta(t[0], Double.parseDouble(t[1]));
contas.add(conta);
}
}finally {
return contas;
}
}
public static void main(String[] args) throws IOException{
/*
ArrayList<Conta> contas = new ArrayList<Conta>();
contas.add(new Conta("Ricardo", 12000.23));
contas.add(new Conta("Lawrence", 11050.32));
contas.add(new Conta("Sandra", 18000.21));
contas.add(new Conta("Beatriz", 23200.09));
*/
Arquivo3 operacao = new Arquivo3();
//operacao.armazenarContas(contas);
ArrayList<Conta> contas2 = operacao.recuperarContas();
for (Conta conta : contas2) {
conta.exibeSaldo();
}
}
}
Похоже, что Eclipse использует java 1.6 вместо 1.7 для подсказок. –
В вашей среде IDE используется jdk6. Пожалуйста, исправьте это. , Ответы ниже относятся только к java6. – Jayan