此代码:
@Service
public class IvsImport {
private Logger logger = Logger.getLogger(IvsImport.class);
@Autowired
FileReader fileReader;
@Autowired
ValueProcessorProvider provider;
CSVEntryParser<IvsBerichtPojo> entryParser = new AnnotationEntryParser<IvsBerichtPojo>(IvsBerichtPojo.class, provider);
CSVReader<IvsBerichtPojo> ivsBerichtReader = new CSVReaderBuilder<IvsBerichtPojo>(fileReader).entryParser(entryParser).build();
public IvsImport(){}
public FileReader getFileReader() {
return fileReader;
}
public void setFileReader(FileReader fileReader) {
this.fileReader = fileReader;
}
Iterator<IvsBerichtPojo> it = ivsBerichtReader.iterator(); //this } is not OK????
while(it.hasNext()) {
IvsBerichtPojo bericht = it.next();
logger.info(bericht.getScheepsNummer());
}
} //and here?????
在迭代器声明之后和最后一个卷曲的brakcet上给我一个语法错误:
Syntax error, insert "}" to complete ClassBody
但是当我这样做时,没有任何改变......
请帮忙!
答案 0 :(得分:10)
你不能在方法之外编写代码。您需要编写可执行代码的方法。
将while循环放入任何方法,看看它是否已编译。
答案 1 :(得分:4)
因为你的while循环存在于任何其他方法之外。你必须将它放入方法中。
答案 2 :(得分:4)
你不能在方法/构造函数之外编写这样的代码。你只能在那个级别声明变量。将带有while循环的代码放在方法体中,编译器错误就会消失。
要添加的内容,您只能在类体内编写方法/构造函数/初始化块/变量声明。
答案 3 :(得分:4)
您正在直接在类体中编写代码,这是不正确的。相反,您的代码应该是某种方法的一部分。
public void logDetails(){
Iterator<IvsBerichtPojo> it = ivsBerichtReader.iterator();
while(it.hasNext()) {
IvsBerichtPojo bericht = it.next();
logger.info(bericht.getScheepsNummer());
}
}
答案 4 :(得分:1)
在方法中编写代码,因为执行该代码需要一个方法。因此,将while循环放在任何方法中。 谢谢!